随笔-112  评论-64  文章-0  trackbacks-0

2010-4-3《卓有成效的程序员》读书笔记

今天一口气把这本书读完了,收获确实不小,书中提到的一些提高效率的理念,比如利用各种工具完成任务、去掉重复、尽可能自动化等等,都是非常实用的。

 

1.利用各种代码分析工具比如静态分析工具、源代码分析工具等,找出潜在的Bug。

2.如果对getter/setter不加限制的使用,无异于对外暴露细节破坏封装特性,是数据与预期的不一致。所以还是妥善使用,比如空置访问权限(在.net中建议的做法是使用property进行赋值或取值,即使在类的内部也如此,所以访问权限就显得很重要,如果不想让本类以外的其他类进行访问,可以将set访问器置为私有)、或用一些定义好的方法代替setter或getter以保证数据一致性。

3.“其实构造函数有一个更重要的使命:它们告诉你怎样才可以创建出这个类的合法对象。”

这项在以往的项目中一直在用,只有在框架要求或确实没有必要进行信息设置的情况下,才保持有无参构造函数,这点书中也已经提到。

4.静态方法是无状态的,很容易作为处理一些问题的辅助手段,但不能过分依赖,以免造成将OO语言用得像OP语言一样。

5.“只开发当下需要的东西。...因为程序员们总是很难客观地看待自己的想法,特别是在这个想法刚冒出来的时候。”

YAGNI的意思是你不会需要它。这一点之前也提到过,预想式开发往往不能适应变化,真正的实用、适用的代码应该产生于不断的重构当中。另外对于一些特别的想法,可以先进行记录,过一段时间重新审视一下,看看当时的想法是否真的合情合理。

6“当框架完全出自预想时,它们就一无是处。”

这条让我回想起了之前的工作,虽然之前工作整体上的失利并不只在于此,但是跟这条也不无关系。当时确实提供了一些“高级”的功能,但这些功能能在开发中利用到的确是很少,凭空增加了不少复杂度,当时如果根据项目需求,多在更快速开发这条路上提供一些支持,也许能得到更多的肯定。

7.“程序员应该谨记:熵会杀死软件,所以,如无必要,勿曾特性。”

谨记!!!!时刻提醒自己,以前经常会犯这个毛病,现在改好了很多。

posted on 2010-04-03 22:46 LeonSun 阅读(8) 评论(0) 编辑 收藏