书摘
设计的臭味:
- 僵化性:改不动
- 脆弱性:不能改
- 牢固性:拆不出
- 粘滞性:感觉也是拆不出
- 不必要的复杂性:过度设计
- 不必要的重复:复用性极差
- 晦涩性:看不懂
软件设计三方面(如何发现问题,分析问题,解决问题)
- 遵循敏捷实践去发现问题
- 应用设计原则去诊断问题
- 应用适当的设计模式去解决问题
SRP 单一职责原则:就一个类而言,应该仅有一个因其他变化的原因
职责:变化的原因。
软件实体应该是可以扩展的,但是不可修改的——当需求改变时,可以对模块进行扩展,而不用改动模块的源代码或者二进制代码
感悟:
- 不要预测变化,而是接受,并适应(拥抱)变化——针对需求变化而言
- 熟悉业务真的很重要,可以帮你提前预测并设计代码,如果不熟悉业务,还是先等等,看情况怎么样再定吧。