架构原则

286 阅读2分钟

架构是一种能力,而不仅是一个title

1. 需求分析

1.1 需求边界—需求是有界的

1.2 用户故事—用户使用场景

1.3 用户路径—越短越好

1.4 伪需求-用专业降维打击

1.5 权利需求-用专业说服权利,或者被权力用$$说服

2. 问题的分层

2.1 用户问题—本源问题

2.2 业务问题—经营视角

2.3 产品问题—需要一个好的产品把业务的各种可能、边边角角考虑到

2.4 技术问题—代码架构

2.5 意义:吵架的时候,要知道自己在争论什么问题,例如:不要用技术问题去否定用户问题。

3. 架构理念:大道至简,解决问题

4. 七大设计原则(背下来,形成潜意识,体现在代码产出中)

1. 单一职责

     1.1 一个模块就干一件事

     1.2 模块名字非常重要(你在工作中遇到有歧义、反义、汉语拼音之类的模块名,想打人吗?)

2. 里氏代换原则

     2.1 概念:更具体的一定能代替更抽象的;更抽象的一定不能代替更具体的

     2.2 违反里氏代换原则时,可以考虑组合

3. 接口隔离原则

     3.1 概念:interface力度尽可能小

     3.2 理念:高内聚,低耦合

4. 组合复用原则:

     4.1 与继承相比:比继承更松散、产生更少的对象、暴露的方法更少

     4.2 正例:service注入

     4.3 反例:implement N多interface

5. 依赖倒置原则

     5.1 细节依赖抽象,底层依赖高层

     5.2 加深记忆:做事也是如此—先有框架再有细节

6. 迪米特原则(知识最少原则)

     6.1 只关注暴露的接口,不关注具体实现

     6.2 加深记忆:只关注结果,不关注过程

7. 开闭原则

     7.1 概念:对扩展开发、对修改关闭

     7.2 最熟悉的陌生原则,知易行难

     7.3 架构师的价值:识别和隔离变化点(不要相信产品,不要相信任何人)

     7.4 开闭原则是熵减,好程序员一般都有熵减的怪癖