软件开发的一些原则
SOLID原则 —— 《敏捷软件开发》
- 单一职责原则(SRP):
一个对象只包含单一的职责,并且该职责完整地封装在一个类中。 - 开闭原则(OCP):
一个软件实体应该对扩展开放,对修改关闭。也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为。 - 里氏替换原则(LSP):
派生的子类应该是可替换基类的,也就是说任何基类可以出现的地方,子类一定可以出现。 - 接口隔离原则(ISP):
类不应该被迫依赖他们不使用的方法,也就是说一个接口应该拥有尽可能少的行为,它是精简的,也是单一的。 - 依赖倒置原则(DIP):
高层模块不应该依赖低层模块,他们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
《程序员修炼之道》
- 足够好的软件:
使质量成为需求问题。并且知道何时止步,不要因为过度修饰和过于求精而损毁完好的程序。 - 正交性:
两条直线垂直相交。沿着一条直线移动,投影到另一直线上的位置不变。指不相互依赖性或解耦性。 - 可撤销性:
制作灵活、有适应能力的软件。不必做出许多关键的、不可逆转的决策。 - DRY原则:
Don’t Repeate Yourself - 按合约设计:
用文档记录软件模块的权利与责任,并进行校验。 - 迪米特法则(德墨忒尔法则):
编写“羞怯”的代码,不过多向别人暴露你自己,不与太多人打交道。使耦合减至最少。把代码组织成最小单位(模块),并限制它们之间的交互。 - 元程序设计:
把细节赶出去,让代码容易适应变化。把抽象放进代码,把细节放进数据。