读《Software Systems Architecture》(02)—— Software Architecture Concepts
🤔☕️🤔☕️🤔
读《Software Systems Architecture》(02)—— Software Architecture Concepts
📖:架构(Architecture),借用自多个领域,典型如建筑,已用到多个领域,典型如 CPU 架构。
🤔:这也是困住我很多时刻的概念。每次谈架构,就必会谈建筑,意义何在。每次谈架构,又得跟 CPU 做个区分,意义又何在。抓住“对谁而言”这个视角,是否就能够让架构这个词有聚焦感,抓住“解决什么问题”这个线索,是否更能够聚焦架构这个词。软件架构,始终在对着能因此架构收益或免损的人或组织而言,始终围绕着需要过去经验、当下判断、未来预测的信息不对称问题。
📖:架构 = 系统中的元素及其关系、它们的关键属性、设计和演化的原则。
🤔:元素和关系,搭起结构,属性让结构有质感,原则指明架构当下和未来的方向。
📖:系统元素和关系 = 静态结构(static structures),设计时元素的组织方式 + 动态结构(dynamic structure),运行时元素的组织方式。
🤔:简单一个“静”和“动”,区分一下“设计”和“运行”,局面一下子非常明朗。前者是“应然”,后者是“实然”。应该这么跑,实际也是这么跑,最理想。应该这么跑,实际跑成这样,最悲催。
📖:系统关键属性 = 外部可观察行为,即系统能干啥 + 质量属性,即系统干到什么程度。
🤔:站在系统的外部,跟系统交互起来,看它能干啥,评估它干的程度。
📖:质量三角 = 高质量 + 低投入 + 快速上市。
🤔:打破质量不可能三角的法子,就是把收益放到全局,在一个具体的时代背景下,计算做一件事情的总收益。然后,发现这件事情只能在复盘时再做,也就是只能事后做。怎么说呢,就是没打破这个不可能三角呗。
—— By 术子米德 @2022.05.05
版权声明: 本文为 InfoQ 作者【术子米德】的原创文章。
原文链接:【http://xie.infoq.cn/article/40307050e26b2734e0d87207c】。文章转载请联系作者。
评论