关于“源代码就是设计”的几点想法
大的方面来说,这里的设计是代码架构方面的设计,包括顶层设计,详细设计;小的方面来说,是一个具体的功能或模块的具体实现。
好的代码应该能让人很清晰地看出软件架构,模块功能,是能自解释的。所谓的自解释,就是能不看文档或其他东西,就能理解设计者的思想。
源代码不是简单地,软件编码过程的产物。
通常我们说一个设计好坏有两种方法:使用它,以及看它是怎么实现的。使用它就是用户体验。怎么实现的就是源代码。
设计过程贯穿于软件开发的始终,从大框架,到功能模块,到测试用例。每个层面设计的好坏都会影响下个层面。源代码是设计的具体实现,代码的好坏反应了设计的优劣。
设计是经验的积累,是不断学习的过程。好的案例对自己的帮助会很大。
设计要能看得见,相关工具必不可少。
对于个人而言,要掌握从顶层到底层的一整套方法,说到底,还是一个实践和积累的过程。所以说程序员多看书,多实践很重要。
现在维护的代码都是前人写的,有些代码改动起来比较麻烦,如果在修改的时候避免这些问题?
是不是可以这样:修改时做一些局部的微重构。修改之前,先做好相应的测试用例。这就需要一些TDD、UT的开发方法。
新开发的代码,在编码之前做好设计,比如接口类型、框架结构,画流程图,框图。同时写UT。
如果觉得没有必要写UT,必须先想好该怎么测,把测试方式和条件罗列出来,包括各种边界条件。
关于开发文档,如果方案比较复杂,必须要写个文档,并且让相关人员评审,防止考虑不周。
需要的一些技能:UT、TDD、设计模式、重构、画流程图/框图的一些工具。
多看一些优秀代码案例,增长见识。