《程序员修炼之道》阅读笔记2
维持正交性
正交:两个事物中一个发生变化,对其他无影响,这两个事物就是具有正交性;
正交性的好处:
- 提高生存率;
- 降低风险
让代码维持正交性,可以消除无关事物之间的影响;
可撤销,可更换
不存在最终的目标,也没有终极的架构;项目的任何一个模块一个组件都是可撤销,可替换的;不要过度依赖于某个第三方的产品,否则你的项目就被第三方绑架了;
通过灵活的架构,将第三方产品隐藏在良好的抽象接口之后;
无处不在的自动化
多用python、shell等脚本语言,将工作的重复性任务自动化实现;
对于编程中的重复性代码,通过脚本自动生成代码来实现;
在工作中多总结,提炼小系统,让流程、代码都自动化;
linux下的cron是个好东西,让你的自动化任务都在夜深人静时准时执行;
不要靠巧合编程
你所写的代码都是深思熟虑过后的产物,先有设计,然后再产出;想到一处写一处是刚毕业的水平;
按照合约编程,别想着这个地方可以增加多少好功能,画蛇添足的故事太多,过多的超过用户期望未必有好的结果,可能就成了用户不想要的;
测试的重要性
测试重要,大家都知道;但单元测试,有多少个项目能认真的做过;没有质量高、覆盖好的单元测试,哪来的勇气去重构一个个庞然大物似的老项目?
这句话很精辟:测试你的软件,否则用户就得测试;
新方法和新工具
有个新工具或新方法想在项目组中推广,这事挺好;但不要低估采用新工具和新方法的代价,可能你的项目需要花上太多精力来熟悉这个方法,而第一个采用这个方法的项目,可能就只能是实验品;
批判的看待方法学,从中提炼适用团队的精华;