优秀的软件设计,以设计可维护的软件为目标,能够灵活应对产品的各种需求变化,这就需要遵循 ETC 原则。
视频地址:https://www.zentao.net/programmer/etc-maintainable-code-80345.html/?from=uplubky
ETC 原则是什么
Easier To Change,也就是易于变更,能够帮助设计者在多个方法中,选出易于变更的解决方案。ETC是软件设计的核心原则,从本质上讲,所有的软件设计都是在实现 Easier To Change。
那些运用ETC的软件设计原则
1.代码规范
在研发过程中,不论是代码命名还是代码注释,统一的代码规范不仅会避免代码臃肿、提高代码的可读性,还遵循了ETC原则,提高了代码的可变更性。
2.最少知识原则
最少知识原则同样是基于 ETC 原则产生的,也被称为得墨忒耳定律,通过降低耦合度,来增强软件设计适应变化的能力,避免牵一发而动全身。
比如,某公司需要整合公司所有员工的资料,在这种情况下,为了避免耦合度过高,领导无需与公司所有员工对接,只要与掌握员工资料的负责人对接即可。
3.单一原则
在软件开发过程中,如果开发、测试、产品经理等职能角色都由一位成员担任,那该成员的开发时间安排势必会影响到测试或其他职能角色的时间规划。
这就是单一原则的反例。单一原则要求尽量减少能引起某个类变化的原因。划分类的单一职责,可以使类更易于变更,避免出现需求变更时,软件的设计结构遭到破坏。
如何遵循 ETC 原则?
实际上,ETC 原则作为一种价值观念,应成为设计者的下意识反应,潜移默化地影响设计者,选择正确的设计方向。这就需要设计者有意识地进行自我强化,不断提醒自己:“刚完成的工作是让整个系统更容易改变还是更难改变?”
不过,如果只是死板地遵循 ETC 原则,“掩耳盗铃”,就更得不偿失了。譬如:为了易于变更,无情地删除测试组件中的所有重复内容,这反而会使日后的维护者难以更改。
以上这些情况都处于一个大前提下:设计者有能力辨别哪一种方式更易于将来的变更。但如果还不具备这种辨别能力,可按照常识来推断,这也是培养辨别能力的一种方式。
作为设计者,在构思软件架构时,不应无视多变的需求,做一成不变的产品,而应利用ETC原则,让变更更为容易。从现在开始,尝试让设计变得“Easier To Change”吧!
《程序员修炼之道》系列更多视频可戳:https://www.zentao.net/programmer.html/?from=uplubky