程序员应该修炼的十个习惯,


读了简约版的优秀程序员的十个习惯。 关键词: 敏捷、内功、习惯、优秀程序员

 

谨记问题的理解需要结合实践来体会。而运用则是一个不断尝试的过程。

 

习惯一:对事不对人

当Lee先生在做一个新方案介绍的时候,如果有问题,应该这样说:““谢谢,Lee先生。但是我想知道,如果两个用户同时登录会发生什么情况?”

记住询问你的队友,并提出你的顾忌

(评论)很有道理

 

习惯二:跟踪变化

“唯有变化时永恒的”

1、迭代和增量式的学习

2、了解最新行情

3、参加本地的用户组活动

4、参加研讨会议

5、如饥似渴地阅读

记住 你不需要精通所有技术,但需要清楚知道行业的动向,从而规划你的项目和职业生涯

 

习惯三:让设计指导而不是操纵开发

好的设计应该是正确的,而不是精确的。也就是说,它描述的一切必须是正确的,不应该涉及不确定或者可能会发生变化的细节。它是目标,不是具体的处方

(个人)好的设计更多的意义在于分成,在于分成各个子模块。

1、“不要在前期做大量的设计”

2、即使初始的设计到后面不再管用,你仍需设计:设计行为是无价的。正如美国总统艾森豪威尔所说:“计划是没有价值的,但计划的过程是必不可少的①。”在设计过程中学习是有价值的,但设计本身也许没有太大的用处。

 

习惯四:提早实现自动化部署

一开始就进行全面部署,而不是等到项目的后期,这会有很多好处。事实上,有些项目在正式开发之前,就设置好了所有的安装环境。在我们公司,要求大家为预期客户实现一个简单的功能演示——验证一个概念的可行性。即使项目还没有正式开始,我们就有了单元测试、持续集成和基于窗口的安装程序。这样,我们就可以更容易更简单地给用户交付这个演示系统:用户所要做的工作,就是从我们的网站上点击一个链接,然后就可以自己在各种不同的机器上安装这个演示系统了。
在签约之前,就能提供出如此强大的演示,这无疑证明了我们非常专业,具有强大的开发能力。

 

一开始就实现自动化部署应用。使用部署系统安装你的应用,在不同的机器上用不同的配置文件测试依赖的问题。质量保证人员要像测试应用一样测试部署

 

习惯五:度量真实的进度

在Scrum开发方法中(Sch04),每个迭代被称作sprint,通常为30天时间。sprint的待办事项列表是当前迭代任务列表,它会评估剩下的工作量,显示每个任务还需要多少小时可以完成。
每个工作日,每个团队成员会重新评估完成一个任务还需要多少小时。不管怎么样,只要所有任务的评估总和超过了一个迭代剩余的时间,那么任务就必须移到下一个迭代中开发。
如果每月还有一些剩余的时间,你还可以添加新的任务。这样做,客户一定会非常喜欢。

 

习惯六:用代码沟通

1、不要用注释来包裹你的代码

2、使用细心选择的、有意义的命名。用注释描述代码意图和约束。

 

习惯七:编写内聚的代码

类和组件的功能都很集中:每个类或组件只做一件事,而且做得很好。类和组件的责任要都很清晰

(评论)关于模块内聚性:模块分层的时候,每一个层有个Dll。你可以很快的知道某个类在哪里,但是单独的dll内聚性不一定非常好。

在分层的时候需要有一个权衡。

 

习惯八:根据契约进行替换

1、Liskov替换原则[Lis88]告诉我们:任何继承后得到的派生类对象,必须可以替换任何被使用的基类对象,而且使用者不必知道任何差异

2、如果新类可以替换已有的类,并且它们之间的关系可以通过is-a来描述,就要使用继承。
3、如果新类只是使用已有的类,并且两者之间的关系可以描述为has-a或是uses-a,就使用委托吧。

4、相对继承来说,委托更加灵活,适应力也更强。
5、继承不是魔鬼,只是长久以来被大家误解了。

记得要灵活的使用委托

 

习惯九:报告所有的异常

1、处理或是向上传播所有的异常。不要将它们压制不管,就算是临时这样做也不行。在写代码时要估计到会发生的问题

记得要throw

 

习惯十:做代码复查

要寻找深藏不露的程序bug,正式地进行代码检查,其效果是任何已知形式测试的两倍,而且是移除80%缺陷的唯一已知方法。
——Capers Jones的《估算软件成本》[Jon98]

复查所有的代码。对于提升代码质量和降低错误率来说,代码复查是无价之宝。如果以正确的方式进行,复查可以产生非常实用而高效的成果。要让不同的开发人员在每个任务完成后复查代码

 

记住 让复查成为项目的一部分

相关内容

    暂无相关文章