一、KISS原则
尽量保持简单。
KISS原则是保持代码可读性和可维护性的重要手段。
1、考虑逻辑复杂度、实现难点、代码可读性,如不重复造轮子、不过度优化
2、本身就复杂的问题,用复杂的方法解决并不违背KISS原则。
二、YAGNI原则:You Ain’t Gonna Need It
不要做过度设计。
如不要去设计当前用不到的功能、不要去编写当前用不到的代码、不引入无用的依赖包。当然,考虑到代码的扩展性,我们还是需要预留好扩展点。
YAGNI原则讲的是”要不要做“的问题,KISS原则讲的是“如何做”的问题。
三、DRY原则
不要写重复的代码。
重复的代码不一定违背DRY原则,一些看似不重复的代码有可能违背DRY原则。
三种典型的代码重复情况:功能语义重复、实现/逻辑重复、代码重复执行。
四、LOD 迪米特法则/最少知识原则
每个模块只应该了解那些与它关系密切的模块的有限知识。
对类而言就是不该有直接依赖关系的类之间,不要有依赖;有依赖关系的类之间,尽量只依赖必要的接口(也就是有限知识),目的是减少类与类之间的耦合。
五、高内聚与松耦合:
“高内聚、松耦合”是一个非常重要的设计思想,能够有效提高代码的可读性和可维护性,缩小功能改动导致的代码改动范围。“高内聚”用来指导类本身的设计,“松耦合”用来指导类与类之间依赖关系的设计。
高内聚指相近的功能放在同一个类中,不相近的功能不要放在同一个类中。松耦合指类与类之间的依赖关系简单清晰,一个类的代码改动不会或者很少导致依赖类的代码改动。
依赖注入、接口隔离、基于接口而非实现编程、迪米特法则等都是为了实现代码的高内聚与松耦合。
六、其它:
CCP:共同封闭原则,一起修改的类,应该组合在一起(一个包里)。
CRP:共同复用原则,包中的所有类应该被一起重用。
ADP:无环依赖原则,不要出现循环依赖。