架构师技能修炼
2020-06-01 17:09:04 0 举报
AI智能生成
架构师必须掌握的技能,程序员要向架构师方向转型,可以依此进行修炼
作者其他创作
大纲/内容
架构设计思想
四大思维
抽象
分层
分治
演化
七大设计原则
1.开闭原则:对扩展开放,对修改关闭
2.依赖倒置原则:实现尽量依赖抽象,不依赖具体实现。
3.单一职责原则:对于一个类而言,应该仅存在一个可以引起类变化的原因。
4.接口隔离原则:客户端不应该依赖它不需要的接口,类之间的依赖关系应该建立在最小的接口上。
5.迪米特法则(最小知道原则):一个对象应该对其他对象保持最少的了解,尽量降低类与类之间的耦合。
6.里氏替换原则:一个软件实体如果适用一个父类的话,那一定是适用于其子类,所有引用父类的地方必须能透明地使用其子类的对象,子类对象能够替换父类对象,而程序逻辑不变。
7.合成/聚合复用原则:尽量使用对象组合(has-a)/聚合(contanis-a),而不是继承关系达到软件复用的目的。
23种设计模式
行为型模式
模板方法(Template Method)模式:定义一个操作中的算法骨架,将算法的一些步骤延迟到子类中,使得子类在可以不改变该算法结构的情况下重定义该算法的某些特定步骤。
策略(Strategy)模式:定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的改变不会影响使用算法的客户。
命令(Command)模式:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。
职责链(Chain of Responsibility)模式:把请求从链中的一个对象传到下一个对象,直到请求被响应为止。通过这种方式去除对象之间的耦合。
状态(State)模式:允许一个对象在其内部状态发生改变时改变其行为能力。
观察者(Observer)模式:多个对象间存在一对多关系,当一个对象发生改变时,把这种改变通知给其他多个对象,从而影响其他对象的行为。
中介者(Mediator)模式:定义一个中介对象来简化原有对象之间的交互关系,降低系统中对象间的耦合度,使原有对象之间不必相互了解。
迭代器(Iterator)模式:提供一种方法来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。
访问者(Visitor)模式:在不改变集合元素的前提下,为一个集合中的每个元素提供多种访问方式,即每个元素有多个访问者对象访问。
备忘录(Memento)模式:在不破坏封装性的前提下,获取并保存一个对象的内部状态,以便以后恢复它。
解释器(Interpreter)模式:提供如何定义语言的文法,以及对语言句子的解释方法,即解释器。
结构型模式
代理(Proxy)模式:为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。
适配器(Adapter)模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。
桥接(Bridge)模式:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现的,从而降低了抽象和实现这两个可变维度的耦合度。
装饰(Decorator)模式:动态地给对象增加一些职责,即增加其额外的功能。
外观(Facade)模式:为多个复杂的子系统提供一个一致的接口,使这些子系统更加容易被访问。
享元(Flyweight)模式:运用共享技术来有效地支持大量细粒度对象的复用。
组合(Composite)模式:将对象组合成树状层次结构,使用户对单个对象和组合对象具有一致的访问性。
创建型模式
单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。
原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。
工厂方法(FactoryMethod)模式:定义一个用于创建产品的接口,由子类决定生产什么产品。
抽象工厂(AbstractFactory)模式:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。
建造者(Builder)模式:将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。
高性能架构模式
高性能集群数据库
读写分离
分库分表
高性能NoSQL
MongoDB
HDFS
高性能缓存架构
Redis
Memcached
高性能单服务器
PPC与TCP
Reactor与Proactor
高性能负载均衡
分类及架构
算法
高可用架构模式
CAP
理论
细节
FMEA
排除可用性隐患的利器
高可用存储架构
双机架构
集群和分区
设计计算高可用架构
异地多活架构
业务高可用的保障
4大技巧
4步走
应对接口级故障
可扩展架构模式
基本思想和模式
传统的分层架构和SOA
微服务架构
方法
基础设施
微内核架构
架构实战
判断技术演进的方向
互联网技术演进的模式
互联网架构模板
存储层技术
开发层和服务层技术
网络层技术
用户层和业务层技术
平台技术
架构重构内功心法
有的放矢
合纵连横
运筹帷幄
选择、使用以及二次开发
App架构的演进
架构设计文档模板
0 条评论
下一页