【总结】我的十二个架构设计原则

963 阅读4分钟

谨记

  1. 没有最好的架构,只有最适合的架构
  2. 好的架构不是设计出来的,是演进变化而来的

每一位架构师,在做架构设计时,都或多或少地会有一些自己架构设计原则。这里和你分享一些过去一直指导我的一些架构设计原则,希望对你有用。

1、N+1设计

系统中的每个组件都应做到没有单点故障

2、回滚设计

确保系统可以向前兼容,在系统升级时应能有办法回滚版本

3、禁用设计

应该提供控制具体功能是否可用的配置,在系统出现故障时能够快速下线功能

4、监控设计

在设计阶段就要考虑监控的手段

5、多活数据中心设计

若系统需要极高的高可用,应考虑在多地实施数据中心进行多活,至少在一个机房断电的情况下系统依然可用

6、采用成熟的技术

刚开发的或开源的技术往往存在很多隐藏的bug,出了问题没有商业支持可能会是一个灾难

7、资源隔离设计

应避免单一业务占用全部资源

8、架构应能水平扩展

系统只有做到能水平扩展,才能有效避免瓶颈问题

9、非核心则购买

非核心功能若需要占用大量的研发资源才能解决,则考虑购买成熟的产品

10、使用商用硬件

商用硬件能有效降低硬件故障的机率

11、快速迭代

系统应该快速开发小功能模块,尽快上线进行验证,早日发现问题大大降低系统交付的风险

12、无状态设计

服务接口应该做成无状态的,当前接口的访问不依赖于接口上次访问的状态

SOLID原则(类的六大设计原则)

在设计模式中,有六大原则,简称SOLID原则:

  1. Single Responsibility Principle:单一职责原则
  2. Open Closed Principle:开闭原则
  3. Liskov Substitution Principle:里氏替换原则
  4. Law of Demeter:迪米特法则
  5. Interface Segregation Principle:接口隔离原则
  6. Dependence Inversion Principle:依赖倒置原则

“用抽象构建架构,用实现扩展细节。”

因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保证架构的稳定,而在软件中易变的细节,我们用从抽象派生的实现类来进行扩展。当软件需要发生变化时,我们只需要根据需求,重新派生一个实现类来扩展就可以了。当然,前提是抽象要合理,要对需求的变更有前瞻性和预见性。

  • 单一职责原则:指导我们实现类要职责单一;
  • 开闭原则:指导我们要对扩展开发,对修改关闭;
  • 里氏替换原则:指导我们不要破坏继承关系;
  • 迪米特法则:指导我们要降低耦合;
  • 接口隔离原则:指导我们在设计接口的时候要精简单一;
  • 依赖倒置原则:指导我们要面向接口编程;

把这六个原则的首字母连起来(L算做一个),就是SOLID原则(solid,稳定的)

其目的:利用好这六个原则,去建立稳定、灵活、健壮的设计

针对设计模式,这里推荐一本书:《设计模式之禅》,来自秦小波。刚一出版我就入手了,后面也翻了几次,当年对我的影响很大。各用法都非常详细,技术人员身边必备书之一,推荐读一下

其他

附加



我的CSDN主页

关于我(个人域名,更多我的信息)

我的开源项目集Github

期望和大家一起学习,一起成长,共勉,O(∩_∩)O谢谢

欢迎交流问题,可加个人QQ 469580884,

或者,加我的群号 751925591,一起探讨交流问题

不讲虚的,只做实干家

Talk is cheap,show me the code