5.
DRY -不要重复你自己
don't repeat yourself;
系统中的每一项知识都必须具有单一、无歧义、权威的表示;
重复的发生地方:
开发者没有意识到重复;有时,重复来自于设计中的错误;
开发者偷懒、他们重复,因为那样代码似乎更容易修改;
开发者之间的重复:同一团队中几个人重复了同样的信息;处理这个问题的最佳方式就是鼓励交流;一定要阅读他人的代码,并进行代码review;
让复用变得更容易!
你需要营造一种环境,在其中找到并复用已有的东西;如果不容易,大家就不会去复用;而如果不复用,就有了重复的风险;
6.
维持正交性
正交:两个事物中一个发生变化,对其他无影响,这两个事物就是具有正交性;
正交性的好处:
- 提高生存率;
- 降低风险
让代码维持正交性,可以消除无关事物之间的影响;
7.
可撤销,可更换
不存在最终的目标,也没有终极的架构;项目的任何一个模块一个组件都是可撤销,可替换的;不要过度依赖于某个第三方的产品,否则你的项目就被第三方绑架了;
通过灵活的架构,将第三方产品隐藏在良好的抽象接口之后;
8.
无处不在的自动化
多用python、shell等脚本语言,将工作的重复性任务自动化实现;
对于编程中的重复性代码,通过脚本自动生成代码来实现;
在工作中多总结,提炼小系统,让流程、代码都自动化;
linux下的cron是个好东西,让你的自动化任务都在夜深人静时准时执行;
9.
不要靠巧合编程
你所写的代码都是深思熟虑过后的产物,先有设计,然后再产出;想到一处写一处是刚毕业的水平;
按照合约编程,别想着这个地方可以增加多少好功能,画蛇添足的故事太多,过多的超过用户期望未必有好的结果,可能就成了用户不想要的;