更新时间:2019-04-19 10:53:52 来源:极悦 浏览6010次
学习力强的敢大胆地体验尝试新技术,他们的技术栈始终在保持不断地更新,他们能快速把握事物的本质,并判断出它能用来做什么,不能用来做什么。
而学习力差的程序员呢?为了继续停留在旧技术的舒适区,他们往往会抵制新技术的推广,甚至百般阻挠。因为那会使他们过去的经验统统无效,只能和后来者站在同一起跑线上,抱死一个框架好几年,脱离了框架啥都干不了的程序员实在太多了,事实上,这样的人不能驾驭技术,反而是被技术给奴役了。
所以软件开发人员要不断地学习,多学习课程,多看书,多思考,多讨论。
我们经常会看到另外一个问题是泥团一样黏糊在一起的类,做了很多无关的事情,无关的新特性新功能一点点加入,让简单的类变得臃肿,塞入各种与该类名无关的行为,有时一个类的大小超过几百行代码。
避免这个问题的办法应该总是想:我在这里添加的功能符合类名本身吗?如果不是,那么重新命名类的名称,或者分成两个独立的类。
如果你不能想出一个代码类的合适名称,就会发出坏味道,那类的内部就会变得混杂。有时可能一个需要分成两个部分,才能找到合适的名称分别代表它们。
超大号的类
越来越多代码添加到一个类,变得非常臃肿,虽然这个类还能工作,但是代码太长,非常繁琐,容易发生很多bug,方向和细节混同在一起。
切分一个非常大的类的工作是枯燥的,也是一个挑战,类中代码高度交织在一起,运行中不断修复添加新功能,最后结果是必须有自律才能阻止它变得更大。
一般经验是我们尽量保持类代码低于500行,函数低于50行,有时虽然不可行,但是我们总能寻找到办法来重构它,切分成更小更易于管理的代码块。
代码的注释
如果没有注释,代表没有任何信息,这是临时破碎的代码吗?被取代的旧代码在哪里呢?
并行逻辑和重复代码
举一个例子,有某个结构特征的名称暗示我们一些它是什么的信息,比如“TreeBackground.dds”.为了了解这个特征能被用于一个tree类,我们需要检查文件名中是否以单词“Tree”开始.通过使用filename.beginsWith(”Tree”)检查得很快.这段代码如此短,但是我们在不同地方需要它,这样我们就拷贝粘贴它,这就造成了重复代码,当然每个人知道重复代码不好,但是这段代码真的很短,拷贝粘贴非常容易,我们这里面临的问题很明显:也许以后我们会检查这个结构特征是否适合树tree的改变,那是我们就需要在每个地方单独一个个去解决(因为这段短代码被复制到这些地方)
一般经验是,这段代码不应该被复制,应该放在一个函数中,即使它超级短,主要因为做一个函数再调用需要许多代码,而直接复制粘贴更直接简单?
前沿技术:
•为简化MyBatis而生之MyBatis-Plus
•MyBatis通用Mapper
•云时代容器技术Docker
•微服务一站式框架SpringCloud
•分布式高性能消息中间件RabbitMQ
•持续集成利器Jenkins
•分布式服务治理框架Dubbo
•数据库连接池Druid和JSON库Fastjson
•云数据库Redis分支ApsaraCache
•自研富容器技术Pouch和文件分发系统Dragonfly
•高并发条件下服务限流与服务降级
•高并发条件下缓存击穿与缓存雪崩解决方案
•分布式架构下的分布式事务解决方案
•分布式架构下的全局ID生成方案
•亿级流量下的Redis集群解决方案
•分布式架构下的任务调度解决方案
•多线程&并发编程深入剖析
•JVM内存模型&内存可见性深度学习
•JVM优化深入学习
•Nexus搭建Maven私服
•持续集成利器Jenkins
•分布式文件存储数据库MongoDB
•数据访问SpringDataJPA
•MVVM框架Vue.js
•网络爬虫HttpClient与WebMagic
•分布式搜索引擎ElasticSearch
•阿里巴巴高性能连接池Druid
•阿里巴巴分布式RPC框架Dubbo深度解析
•Zookeeper注册中心及集群详解
•最活跃的MyCat读写分离和分库分表实践
•Comet框架pushlets信息推送
•最实用的Linux实战
•集群/分布式下Session共享解决方案
•企业开发中的接口联调测试
•支付宝/微信支付项目实战
•支付中常见的掉单问题解决方案
•投资中的库存防超卖设计
•互联网金融项目的散标发布
•JMS规范及消息中间件ActiveMQ详解
•乐观锁、悲观锁、分布式锁
•互联网中接口安全解决方案
•集群环境下的定时任务
•分布式文件系统FastDFS详解与实践
•分布式文件系统存储合同文件
•主流NoSQL数据库Redis详解
•最常用的httpclient精解以及HttpComponents
•FreeMarker/Velocity模板技术
•最火热的SpringBoot微服务开发框架精解
•SpringBoot下的模板技术Thymeleaf详解
•Log4j2/slf4j/logback
•Redis缓存技术及使用场景案例
•消息队列ActiveMQ的具体场景应用案例
•高性能HTTP及反向代理服务器Nginx详解
•JDK8/JDK9的新特性
•项目开发中常见的多数据库解决方案
•MySQL数据库主从复制及企业配置实践
•WebServices异构系统间的信息通信和调用技术详解
•最常用的四种JSON解析指南
•微服务架构SpringCloud
•持续集成Jenkins
•NoSQL&MongoDB&Cassandra
•IntelljIDEA开发工具的使用
•SVN&Git版本控制工具的使用
•互联网高并发解决方案
•高并发秒杀系统实践
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习