Skip to content

dunwu/design

Repository files navigation

logo

star fork build code style

DESIGN

DESIGN 是个人对于软件系统架构的心得和总结。

架构之道,在于权衡;权衡之术,在于取舍。

📖 内容

设计步骤

解决方案(Solution),就是针对某些已经体现出的,或者可以预期的问题、不足、缺陷、需求等等,所提出的一个解决整体问题的可行性方案。就软件系统而言,解决方案就是一个可以解决具体业务问题,并且可以落地的软件系统。

解决方案,毫无疑问是顶层系统设计,这需要设计者既懂技术,也懂业务。

第一步:需求分析

把所有需要的东西聚集在一起,审视问题。不停的提问,以至于我们可以明确使用场景和约束。讨论假设。

  • What:系统的作用是什么?系统的目标是什么?
  • Who:系统的用户群体是谁?
  • How:用户希望怎样使用系统?系统如何为用户提供服务?
  • How many:有多少用户?日活/月活有多少?——用户体量会极大的影响系统的性能要求,从而影响系统的规模和复杂度。
    • 容量:系统需要处理多少数据?
    • 并发量、吞吐量:系统需要每秒钟处理多少请求?
    • 读写比率:系统的读写比率是多少?——读多写少或写多读少决定了不同的架构方案。
  • How much:系统的预算是多少(包括物料、人力成本等)?
  • 输入输出:系统的输入输出分别是什么?

第二步:顶层设计

使用所有重要的组件来描绘出一个高层级的设计。

  • 画出主要的组件和连接
  • 证明你的想法

第三步:组件设计

对每一个核心组件进行详细深入的分析。

第四步:扩展设计

确认和处理瓶颈以及一些限制。举例来说就是你需要下面的这些来完成扩展性的议题吗?

  • 负载均衡
  • 水平扩展
  • 缓存
  • 数据库分片

设计

架构

综合
微服务
安全

设计模式

面向对象原则

创建型模式

创建型模式提供了创建对象的机制, 能够提升已有代码的灵活性和可复用性。

结构型模式

结构型模式介绍如何将对象和类组装成较大的结构, 并同时保持结构的灵活和高效。

行为型模式

行为模式负责对象间的高效沟通和职责委派。

重构

UML

📚 资料

🚪 传送

◾ 🏠 DESIGN 首页 ◾ 🎯 钝悟的博客

你可能会感兴趣: