设计两次
软件设计很困难,很难第一次就设计出正确的接口。每个设计2次,通常能够发现第一次设计中的缺点。
设计两次通常不会花很多时间,与实现相比,这部分时间占比很小(设计2次很简单,但是有时候只有在实现时才能意识到之前设计的缺陷,从这个角度看过去,设计两次的代价就很大了),反而有时间一开始并不清楚代码怎么写,先着手写,等实现了部分功能之后,这时可以重新审视下设计,甚至重新写之前的代码,效果会更好。
注释
注释为了帮助使用者更好的理解和使用模块,但注释的作用不止于此,能够更好的记录设计思路,甚至改进设计。但是很多人不写注释,原因如下:
1、好的代码本身就是注释
2、没时间写注释
3、注释会过时,从而给用户误导
4、我看到的注释都没有太多的价值
作者从这4个角度分别反驳这4个观点:
1、好的代码本身就是注释:如果使用者必须通过阅读代码细节来了解接口的使用,那么这个接口抽象的不好
2、没时间写注释:写注释不会超过软件开发时间的10%
3、注释会过时,从而给用户误导:文档和注释要跟着代码的演进而演进
注释文档的好处:
能够从注释中捕捉到代码后面的设计思想,第二章中指出的增加复杂性的三个点:更改放大、认知负担、不知道自己不知道,这三点都可以通过注释一定程度上改善。