架构设计的目的

笔记

  • 架构设计的主要目的是为了解决软件系统复杂度带来的问题。

  • 如何入手做架构设计。几个参考点:

    1. “这么多需求,从哪里开始下手进行架构设计呢?”
      通过熟悉和理解需求,识别系统复杂性所在的地方,然后针对这些复杂点进行架构设计。
    2. “架构设计要考虑高性能、高可用、高扩展……这么多高 XX,全部设计完成估计要 1 个月,但老大只给了 1 周时间”
      架构设计并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出复杂点然后有针对性地解决问题。
    3. “业界 A 公司的架构是 X,B 公司的方案是 Y,两个差别比较大,该参考哪一个呢?”
      理解每个架构方案背后所需要解决的复杂点,然后才能对比自己的业务复杂点,参考复杂点相似的方案。
  • 为了证明自己的技术牛,可能会陷入贪大求全的焦油坑而无法自拔。

  • 分析系统复杂度的几个角度:

    1. 性能。访问量或请求量大不大。(用户群大不大,访问频率高不高。)
    2. 高可用性。系统宕机时间长短影响如何,数据丢失影响如何。
    3. 可扩展性。功能是否稳定,新需求是否比较多。
    4. 安全性。安全级别有多高,控制手段有哪些。
    5. 成本。客户的成本投入有多少,能否承受得住设计的开销。

理解与思考

  1. 任何系统都有架构。
    即便再简单或粗糙的系统都有架构,软件系统天然具备架构属性。重点是“设计”。“设计”是用来增强效用、减少成本和降低复杂度的手段。
  2. 怎么做架构,从哪里入手,要考虑哪些方面。
    先分析和理解需求,从性能、高可用行、可扩展性、安全和成本几个方面找出系统的复杂性所在,然后针对复杂性做一些设计,优化效用,降低复杂性。
  3. 思考题 请按照“架构设计的主要目的是为了解决软件复杂度带来的问题”这个指导思想来分析一下你目前的业务系统架构,看看是否和你当时分析的结果一样?
    我目前参与的项目,是数据分析和评估类的。系统对性能要求高,因为数据量很大。另外可扩展性要求也挺高,新需求总是做不完。领导和客户都希望新需求能够快速交付。

你可能感兴趣的:(架构设计的目的)