• 架构整洁之道(一)


    设计与架构

    以设计新房子的建筑设计师要做的事情为例。新房子当然是存在着既定架构的,但这个架构具体包含哪些内容呢?首先,它应该包括房屋的形状、外观设计、垂直高度、房间的布局,等等。但是,如果查看建筑设计师使用的图纸,会发现其中也充斥着大量的设计细节。譬如,我们可以看到每个插座、开关以及每个电灯具体的安装位置,同时也可以看到某个开关与所控制的电灯的具体连接信息;我们也能看到壁炉的具体安装位置,热水器的大小和位置信息,甚至是污水泵的位置;同时也可以看到关于墙体、屋顶和地基都有非常详细的建造说明。

    总的来说,架构图里实际上包含了所有的底层设计细节,这些细节信息共同支撑了顶层的架构设计,底层设计信息和顶层架构设计共同组成了整个房屋的架构文档。

    软件设计也是如此。底层设计细节和高层架构信息是不可分割的。它们组合在一起,共同定义了整个软件系统,缺一不可。所谓的底层和高层本身就是一系列决策组成的连续体,并没有清晰的分界线。

    目标是什么

    所有这些决策的终极目标是什么呢?一个好的软件设计的终极目标是什么呢?就像我之前描述过的:

    软件架构的终极目标是,用最小的人力成本来满足构建和维护该系统的需求。

    一个软件架构的优劣,可以用它满足用户需求所需要的成本来衡量。如果该成本很低,并且在系统的整个生命周期内一直都能维持这样的低成本,那么这个系统的设计就是优良的。如果该系统的每次发布都会提升下一次变更的成本,那么这个设计就是不好的。就这么简单。

    案例分析

    首先,我们来看一下工程师团队规模的增长。你肯定认为这个增长趋势是特别可喜的,像图1.1中的这种增长线条一定是公司业务取得

  • 相关阅读:
    【owt】构建m79的owt-client-native:使用vs2017
    <码农翻身>读书笔记
    多架构环境下docker-compose部署rocketmq单机模式—— 筑梦之路
    React 19 的新增功能:Action Hooks
    git 设置 upstream 上游代码库
    TCP的滑动窗口与拥塞控制
    拿捏大厂offer教程之接口自动化测试pytest用例管理框架
    WebRTC ULPFEC
    前端垃圾回收机制
    78基于matlab的BiLSTM分类算法,输出迭代曲线,测试集和训练集分类结果和混淆矩阵
  • 原文地址:https://blog.csdn.net/yitian881112/article/details/126569611