优秀程序员的十个习惯
1.对事不对人
不要否定个人,而是以提出疑问的方式表达不同意见。团队和睦气氛,更自由的提出想法。最重要的是解决问题。
2.跟踪技术变化
不必时间很长,但是应该一直在学习
3.让设计指导而不是操纵开发
设计分为战略和战术,战略属于前期设计,好比规划一次旅行,只列出大致路线,不可能完全精准;战术属于细节设计,只有当你在路途中遇到一条河的时候,才能根据河的情况,实际规划如何渡过。过多和过少的设计都是不合理的。
4.提早实现自动化部署
提前测试部署过程,使最终部署变成一件很简单容易的事情。
5.度量真实的进度
真实量化进度情况
6.用代码沟通
使用细心选择的、有意义的命名。用注释描述代码意图和约束。注释不能替代优秀的代码。
7.编写内聚的代码
让类的功能尽量集中,让组件尽量小。要避免创建很大的类或组件,也不要创建无所不包的大杂烩类。分门别类,像收衣服的抽屉一样。
8.根据契约进行替换
通过替换代码来扩展系统。通过替换遵循接口契约的类,来添加并改进功能特性。要多使用委托而不是继承。
9.报告所有的异常
处理或是向上传播所有的异常。不要将它们压制不管,就算是临时这样做也不行。在写代码时要估计到会发生的问题。
10.做代码复查
复查所有的代码。对于提升代码质量和降低错误率来说,代码复查是无价之宝。如果以正确的方式进行,复查可以产生非常实用而高效的成果。要让不同的开发人员在每个任务完成后复查代码。
在代码复查中要看什么呢?你可能会制订出要检查的一些特定问题列表(所有的异常处理程序不允许空,所有的数据库调用都要在包的事务中进行,等等),不过这里是一个可供启动的最基本的检查列表。
- 代码能否被读懂和理解?
- 是否有任何明显的错误?
- 代码是否会对应用的其他部分产生不良影响?
- 是否存在重复的代码(在复查的这部分代码中,或是在系统的其他部分代码)?
- 是否存在可以改进或重构的部分?
此外,还可以考虑使用诸如Similarity Analyzer或Jester这样的代码分析工具。如果这些工具产生的静态分析结果对项目有帮助,就把它们集成到持续构建中去吧。