每一个软件系统不论好坏都有一个架构,架构的好坏决定了系统的承载能力。同时也决定了一个产品的成败。
架构是对系统的骨架,对系统的一种约束,没有任何约束的系统就是一个麻团,没有人能够顺利接手。就像国家的道路一样,没有规划,就会天天堵车,规划明确的道路就像天天跑高速一样。所以有架构的系统就像一个设计精良的机器有条不紊的工作,不会出问题。
架构思想是产品设计的灵魂,必须用架构的思想去开发软件。
1.开闭原则的思考:一个考虑周全的接口几年不用改一次,否则一天改三次系统是没有办法正常工作的。
2.依赖倒置的思考:设计软件必须有清晰的思维脉络进行抽象业务逻辑,比如写作文先写大纲,再次添枝加叶,细化再细化。
3.单一职责的思考:保持功能单一,才会少出错,维护起来才能更简单,复杂的逻辑只需要相关的对象相互组合协作就行。
4.接口隔离的思考:模块之间就像黑盒子,交互越少越好,能依赖需要接口,排除无用依赖接口。
5.迪米特法则,最少知道原则思考:同接口隔离类似,降低类之间的耦合,只和相近的属性方法调用,不去和不熟悉的类通信。
6.里式替换原则思考:所有父类出现的地方子类都可以替代但是不能改变原有逻辑。
7.聚合组合的思考:尽量通过对象之间的调用实现代码复用,避免引入继承带来复杂性。
架构的核心思想都是解偶,降低系统的依赖,避免引入复杂性。