Skip to content

Latest commit

 

History

History
25 lines (16 loc) · 2.35 KB

17.2.md

File metadata and controls

25 lines (16 loc) · 2.35 KB

17.2. 实际意义

作为架构师,有了非功能目标设计环节相关方法的指导,将获得如下几点优势:

  • 设计更有针对性

设计贵在务实,贵在有针对性。试想,如果世界上没有“高性能”这个高度简练、高度抽象的词,用户会怎么描述描述他的非功能要求?他一定会说一大堆“如果......则需要......”式的场景出来!

所以,将一个目标明确为N个场景,是一种回归本源的做法,可以使架构师的设计更加有针对性、更加有效。

  • 可操作性强

懂得了以场景为核心的非功能目标设计思维,架构师就知道“力往哪儿使”了。他们通过研究开发、维护、使用、变更等环境可能遇到的具体情况,不断发现场景,评估场景,做出决策......这是一个可操作性很强的思维实践过程。

其实所谓方法,就是帮着你将经验更系统的、更充分的使用起来的思维框架。所以,对有经验的架构师而言,他们的思维更有序、经验的应用更有理有据、面对更大的系统时信息更足。

当前,很大程度上,确定支持非功能目标的设计决策的过程是“只可意会”的。例如阅读《架构设计文档》时很难搞清楚“为什么”,这给架构新手的成长造成了莫大的障碍。而现在,非功能目标的设计思维明确化了、可视化了、可操作化了,有利于架构新手学习、理解和掌握。

  • 避免过度设计

单凭经验为高质量属性而设计很容易造成过度设计,即引入的很多抽象和机制是不必要的,平白增加了设计复杂性。以“目标-场景-决策”表为工作的非功能目标设计方法将场景视为“一等公民”,使架构师很容易对非功能场景进行评估,通过权衡场景发生的几率、支持场景带来的价值、遗漏场景的代价等因素,来理性决定是否应支持该场景。

  • 便于系统升级时参考

当系统架构不能适应新要求时,往往要对架构进行重构,此时软件架构师常犯的毛病是过于强调系统架构的缺点,而将过去的架构设计全盘否定,这样可能造成设计出的新架构的解决了新问题的同时也失去了已有的优点。而如果将“目标-场景-决策”表文档化,则有利于避免上述问题。