• 架构整洁之道读书笔记(一)


    《架构整洁之道》,英文原名《Clean Architecture》,作者Robert. C. Marin(Uncle Bob)。中国亚马逊上该书英文版亦被冠名为《软件架构与设计匠艺》。

    《Clean Architecture》是作者“Clean”系列中的一本,另两本是《Clean Code》和《Clean Coder》。

    架构设计的目标

    作者提出应该使用软件开发所耗费的精力(effort)来度量软件设计的质量。软件架构的目标就是:使用最少的人力资源来创建和维护所需要的软件。

    在这里作者没有使用“cost”(成本),而是用了“effort”一词。我的理解是,effort所涵盖的面比cost要广。虽然所有投入软件开发的有形资源最终都可以使用货币成本来度量,但还是有些无形资源是无法用金钱来度量的。比如软件企业和软件开发者的声誉、软件开发团队的士气、项目参与者的健康和家庭幸福……

    更容易、更快速地进行变更的能力;意味着更少的缺陷;最小化的精力投入;最大化的功能和灵活性;这些都意味着更少的人力资源投入,从而等于更好的软件质量。

    更好的质量意味着更低的成本;更低的成本就是更好的质量的体现。

    The only way to go fast, is to go well.(走的快的唯一途径就是走得稳。或者:欲速则不达。)
    Making messes SLOWER than staying clean.

    软件的价值

    软件的价值从两个方面体现出来。一个是软件的行为,另一个是软件的结构。

    软件的行为表现在控制机器满足用户的需求,而最重要的两个需求就是“挣钱”和“省钱”。开发者一般使用“功能规格说明书”或者“需求文档”来记录用户对软件行为方面的需求。

    软件在结构方面——也就是软件架构——的价值体现在更容易地改变机器的行为。这也是软件一词中“软”的含义所在。

    那么行为方面的价值和结构方面的价值哪个更重要呢?凭直觉来说,应该是满足客户的功能性需求更重要。但实际并非如此。

    一个能满足功能性需求、但是很难变化的系统,意味着当需求发生变化时,需要非常大的投入才能实现新的、或者变化过的功能。极端情况下可能很快在新需求面前变得无用。

    而一个虽然还没有完全满足功能性需求,但是很灵活、很容易修改的系统,并不需要很多投入就可以使其变得满足客户的需要。

    因此,当我们面对的是需求随时可能变化的环境时,设计一个好的软件架构、使系统更加灵活、易于修改,便比只满足当前的功能性需求更重要。

    那么需求有没有可能不变呢?曾经有不少人试图控制软件需求变更,例如通过大量的前期评审尽可能减少后期的需求变更,但现在的软件开发者已经认识到,需求变更非但是不可避免的,能够迅速修改系统行为应对外部环境变化提出的变更需求才是“软”件系统的价值所在。

    软件结构方面的问题虽然很重要,但一般是不紧急的;而功能方面的需求可能重要也可能不重要,但常常显得很紧急。因此掌握这两方面的平衡便是软件开发者——特别是架构师——的责任。

    设计一个好的软件架构是架构师的职责。相对于软件的功能特性来说,架构师要更加专注于软件的结构,并且在必要的时候还需要“Fight”,要勇于“捍卫”好的软件结构的设计,避免来自各方面的要求匆忙实现软件功能的压力。

    总结

    以上是本书“介绍”部分的主要内容。本书的主要内容就是讲解如何设计一个“好的”,也就是能投入最少的精力实现客户需求的软件架构,从而构建一个更容易变化、更少缺陷、更多功能和灵活性的软件系统。

    借鉴:https://zhuanlan.zhihu.com/p/52610428

  • 相关阅读:
    WPF 获得DataTemplate中的控件
    WPF 制作模板页示例
    ListBox 单击变大动画效果(使用模板、样式、绑定数据源等)
    【转】关于“The type **** is not accessible due to restr
    【转】关于“The type **** is not accessible due to restr
    Jquery主要控件的取值、赋值,包括textbox,button,lable,radio,chec
    List转换成为数组
    如何把两个rs结果集中的内容合并到一个结果集中
    Jquery主要控件的取值、赋值,包括textbox,button,lable,radio,chec
    chrome新建标签 打开主页 谷歌浏览器新建标签页自动打开主页
  • 原文地址:https://www.cnblogs.com/1061321925wu/p/13053297.html
Copyright © 2020-2023  润新知