《从零开始学习架构》读书笔记之架构设计流程

2018-11-25  本文已影响0人  蘑菇均

上一篇读书笔记写了什么是架构、架构的目的以及设计架构的原则是什么。这一篇读书笔记主要讲的是设计架构的套路。

作者将设计架构分为这几个步骤:识别复杂度、设计备选方案、评估和选择备选方案、详细方案设计。

识别复杂度

架构设计的本质目的是为了解决软件系统的复杂性,所以在设计架构的第一步,便是分析系统的复杂性,找到影响系统的主要复杂因素。

架构的复杂度主要从“高性能”、“高可用”和“可扩展”三个方面考虑。作者认为大部分情况下,系统的复杂度只是其中的某一个,少数情况下包含其中两个。

当然,如果接手了一个每个复杂度都存在问题的系统,可以通过一个个问题来解决解决的方式,不要幻想一次架构重构解决所有问题。具体做法就是,将主要的复杂度问题列出来,然后根据业务、技术、团队等综合情况进行排序,优先解决当前面临的最主要的复杂度问题。

设计备选方案

确定了系统面临的主要复杂度后,就意味着方案设计有了明确的目标。
在设计方案时,成熟的架构师首先对已经存在的技术非常熟悉,对已经验证的架构模式烂熟于心,然后根据自己对业务的理解,挑选合适的架构模式进行组合,再对组合后的方案进行修改和调整。

当然,虽然现在技术还是层出不穷,但是经过时间考验,被各种场景验证过的成熟技术更多,所以绝大部分时候架构师在明确目标后,也可以按图索骥找到可选的解决方案。

此外,在这个阶段,作者也有几点建议:一、根据架构设计原则中“简单原则”的要求,挑选合适自己业务、团队、技术能力的方案是好方案;二,这个阶段,架构师需要设计多个备选方案,3~5个方案为最佳,且方案的差异要比较明显,使用的技术不要只局限于已经熟悉的技术。三,备选方案阶段的关注点是技术选型,不是技术细节,所以备选方案不需要过于详细。

评估和选择备选方案

作者提出了“360度环评”。具体操作就是:列出需要关注的质量属性点,然后从这些质量属性的维度去评估每个方案,再综合挑选适合当时情况的最优方案。

常见的方案质量属性点有:性能、可用性、硬件成本、项目投入、复杂性、安全性、可扩展性等。在评估这些属性时,要遵循“合适原则”和“简单原则”,避免贪大求全,基本上某个质量属性能够满足一定时期内业务发展就可以了。

如果某个质量属性评估和业务发展有关系,需要评估未来业务发展的规模时,简单的评估方式是将当前的业务规模乘以2~4即可。如果现在的基数较低,则可以乘以4.

在备选方案360度环评时,可以采用按优先级选择,即设计师综合当前的业务发展情况、团队人员规模和技能、业务发展预测等因素,将质量属性按照优先级排序,首先挑选满足第一优先级的,如果方案都满足,那就再看第二优先级……以此类推。

详细方案设计

详细方案设计就是将方案涉及的关键技术细节确定下来,使得备选方案变成一个可以落地的设计方案。

上一篇下一篇

猜你喜欢

热点阅读