B. 系统架构设计步骤

B. 系统架构设计步骤

架构设计三原则

  • 合适原则:合适原则宣言:“合适优于业界领先”再好的梦想,也需要脚踏实地实现!这里的“脚踏实地”主要体现在下面几个方面。
    • 将军难打无兵之仗
    • 罗马不是一天建成的
    • 冰山下面才是关键
  • 简单原则:简单原则宣言:“简单优于复杂”。
    • 软件领域的复杂性体现在两个方面:
      • 结构的复杂性结构复杂的系统几乎毫无例外具备两个特点:
        • 组成复杂系统的组件数量更多;
        • 同时这些组件之间的关系也更加复杂。
      • 逻辑的复杂性
  • 演化原则:演化原则宣言:“演化优于一步到位”。
    • 首先,设计出来的架构要满足当时的业务需要。
    • 其次,架构要不断地在实际应用过程中迭代,保留优秀的设计,修复有缺陷的设计,改正错误的设计,去掉无用的设计,使得架构逐渐完善。
    • 第三,当业务发生变化时,架构要扩展、重构,甚至重写;代码也许会重写,但有价值的经验、教训、逻辑、设计等(类似生物体内的基因)却可以在新架构中延续。

具体设计步骤:先解决功能属性,在解决非功能属性

  • 第一步:识别复杂度
    • 系统设计
    • 系统重构
  • 第二步:设计备选方案
    • 常见错误
      • 第一种常见的错误:设计最优秀的方案。
      • 第二种常见的错误:只做一个方案。
        • 备选方案的数量以 3 ~ 5 个为最佳
        • 备选方案的差异要比较明显
        • 备选方案的技术不要只局限于已经熟悉的技术
      • 第三种常见的错误:备选方案过于详细。
  • 第三步:评估和选择备选方案
    • 评估思路
      • 最简派:设计师挑选一个看起来最简单的方案。
      • 最牛派:最牛派的做法和最简派正好相反,设计师会倾向于挑选技术上看起来最牛的方案。
      • 最熟派:设计师基于自己的过往经验,挑选自己最熟悉的方案。
      • 领导派:领导派就更加聪明了,列出备选方案,设计师自己拿捏不定,然后就让领导来定夺,反正最后方案选的对那是领导厉害,方案选的不对怎么办?那也是领导“背锅”。
    • 360 度环评:列出我们需要关注的质量属性点,然后分别从这些质量属性的维度去评估每个方案,再综合挑选适合当时情况的最优方案
      • 正确的做法是按优先级选择,即架构师综合当前的业务发展情况、团队人员规模和技能、业务发展预测等因素,将质量属性按照优先级排序,首先挑选满足第一优先级的,如果方案都满足,那就再看第二优先级……以此类推。那会不会出现两个或者多个方案,每个质量属性的优缺点都一样的情况呢?理论上是可能的,但实际上是不可能的。前面我提到,在做备选方案设计时,不同的备选方案之间的差异要比较明显,差异明显的备选方案不可能所有的优缺点都是一样的。
  • 第四步:详细设计方案
    • 问题:详细设计方案阶段可能遇到的一种极端情况就是在详细设计阶段发现备选方案不可行,一般情况下主要的原因是备选方案设计时遗漏了某个关键技术点或者关键的质量属性。
    • 措施
      • 架构师不但要进行备选方案设计和选型,还需要对备选方案的关键细节有较深入的理解。
      • 通过分步骤、分阶段、分系统等方式,尽量降低方案复杂度
      • 如果方案本身就很复杂,那就采取设计团队的方式来进行设计,博采众长,汇集大家的智慧和经验,防止只有 1~2 个架构师可能出现的思维盲点或者经验盲区。

你可能感兴趣的:(系统架构,系统架构)