第九区

一个程序员的经验笔记

五-敏捷编码

| 暂无评论

25.代码要清晰地表达意图

代码必须具备可读性,保证他人可以理解;

一开始就要保证这一点,现在不这么做,以后你也不会这样;

不应该创建过多的类,过分抽象会影响程序的可读性;

使用符合当时情形的耦合;

26.用代码沟通

把注释写得简明扼要需要花费更多的时间,但它是值得的;

在代码可以传递意图的地方不要使用注释;

与解释代码做了什么相比,注释说明为什么这么写代码作用更大;

重写代码时,保留描述原有方法意图和约束的注释;

27.动态评估取舍

要确认投入会得到回报;

真正的高性能系统,从一开始设计时就在向这个方向努力;

过早的优化是万恶之源;

不要预设结论,先看看目前的状况;

28.增量式编程

要保持测试可以快速运行;

经常停下来远离代码细节想一想,保证没有偏离正确方向;

要休息时,请远离键盘,好好休息;

要象重构代码一样,经常重构测试;

29.保持简单

代码总是可以进一步优化,如果不能带来实质性好处,就不需要去优化它;

编写代码的目标是简单、可读性高,强行让代码变得优雅和过早优化一样会产生恶劣影响;

简单的解决方案必须满足功能需求,不能为了简单而在功能上妥协;

简单的代码必须达到沟通的目的;

一个人认为简单的东西,对另一个人往往意味着复杂;

30.编写内聚的代码

如果一个类的方法和属性共同完成一个功能,这个类就是内聚的;

把一些东西拆分过小,可能会失去使用价值;

软件包越大,可重用性就越差;

内聚性良好的代码,可以根据需求成比例地变更代码;

31.告知,不要询问

命令与查询功能应该分离;

每个类不要抢别的对象或组件的工作,告诉对方做什么,然后盯好自己的职责就可以了;

一个命令返回数据以方便使用是没有问题的;

绝不允许一个查询去修改对象的状态;

32.根据契约进行替换

相对于继承来说,委托更加灵活,适应性更强;

继承不是魔鬼,但长久以来,被大家误解了;

如果你不确定一个接口做出了什么样的承诺,那就很难提供有意义的实现了。

发表评论

*为必填字段!