本系列的文档都是我读书后的个人纪要,如想了解更多相关内容,请购买正版物。对应的图书可以从我的个人图书列表里找寻:个人毕业后图书列表
1、 每个写代码的人都是设计师,团队里每个人都有责任保证自己的代码有良好的设计。大部分的程序员都有不错的想法,要尽可能多的聆听他们的建议和反馈,但是决策必须有单独的个人来进行下,不可一群人一起做决策。
2、 软件设计的推动力,全部的软件都有着相同的目标:帮助人。在做软件有关的决策时指导法则就是判断能提供什么样的帮助(帮助有很多种,帮大忙,帮小忙,帮很多人,帮少数人);紧要程度、优先顺序也按照这个标准来裁决。
软件的目标:保证软件能提供尽可能多的帮助;保证软件能持续提供尽可能多的帮助;使程序能尽可能简单的开发与维护、这样才能第一项与第二项得以实现。
3、设计的可行性公式 可行性=(当前价值+未来价值)/(实现成本+维护成本),随着项目周期的拉长,维护成本被不停的拉高。
4、软件设计的三大误区:编写不必要的代码;代码难以维护(避免重复);过分的追求通用性。建议采取渐进式的设计与开发,保证每个阶段都做最容易的事情。
5、任何变化都可能带来缺陷,永远不要修正东西,除非他真的有问题,而且有证据表明问题确实存在。
6、代码的简洁特性:良好的可读性;良好的命名规则(核心思想是见名知意);良好且最新的注释。
7、复杂性的控制:
7.1、能够帮人的软件应该坚守已经确定的用途,只要完善这些目标就可以获得成功。
7.2、由少量精干人员组成的团队更容易成功。
7.3、可以采取生存潜力;互通性;对品质的重视度。
7.4、如果复杂度太高,导致维护成本无法hold不住,可以考虑推到重来。但要做足准备:重来比什么硬撑着强;有时间有能力做重来。