• 《一线架构师实践指南》--三四章节总结


    之前觉得架构师是一份可望而不可即的工作,这辈子都不可能学习到到相关的知识了。然而在一线架构师实践指南这本书中,通过书中对于架构师的工作的描述,还有其实现的过程的分析,逐渐地从思想上拉近了与架构师认识的隔阂,架构师也是凡人,他也做着人能做的事情,只不过是站的角度不同,他能站在普通人所达不到的高度上看待整个问题,能够有未雨绸缪的思想对系统进行一个统筹规划。

    第三章主要是介绍了pre-architecture的实际作用,pre-architecture是admems方法中的一个阶段,以下是书中对其的定义。

    什么是Pre-architecture

    Pre-architecture就是架构设计的最前期阶段,其工作目标包括:理解需求、建立需求大局观确定架构设计方向等。

    Pre-architecture阶段虽然是铺垫性质的阶段,但对架构实践而言意义重大。

    这个阶段能够解决以下这个这些问题:

    分析业务需求和约束背后的衍生需求

    发现遗漏需求

    确定关键功能

    确定关键质量

    权衡属性之间的矛盾关系

    在pre-architecture的阶段,能够帮助架构师在其构建的过程中,挖掘出业务,用户,开发的3个需求层次中中,和功能,质量,约束的3类需求中的更加与深层次的需求,这个过程对于架构实践的意义是重大的,因此在pre-architecture阶段,书中对其形象的比喻就是砍柴之前的磨刀,这有助于在架构构建的过程中让架构师清晰其需求的脉络,更加了解清晰深层次的需求,如此一来可以增加在架构成功的概率。

    架构设计思维的基础:不同需求影响架构的不同原理


    这就是说,需求决定架构,但不同的需求影响架构的不同原理。这个过程在之前的章节提及到了关键需求确定架构,其余需求验证架构的这个过程是一致的思想,对于不同需求影响架构的原理不同,书中对其进行了基本原理进行总结。

    功能是发现职责的依据

    质量是完善架构设计的动力

    约束对架构的设计影响分为几类

    功能:他们之间的对于架构设计的影响在书中也有明确的定义:每个功能都是由一条“职责协作链”完成的,架构师通过为功能规划职責协作链、将职責分配到子系统、为子系统界定接口、确定基于接口的架构设计的

    质量:(必须)基于当前的架构设计中间成果,进一步考虑具体质量要求,对架构设计中间成果进行細化、调整、甚至推倒重来,一步步地使架构设计完善起来

    质量和功能共同影响着架构设计,抛开功能、单依据质量要求设计架构是不可能的

    约束:直接制约设计决策的约乘(例如“系统运行于Unix平台之上”)

    转化为功能需求的约束(例如“本银行系统执行现行利率”引出“利率调整”功能)

    转化为质量属性需求的约束(例如“柜员计算机平均水平不高”引出易用性需求)

    第四章主要是对于需求结构化和分析约束影响进行了分析

    主要对pre-architecture的前两个步骤:

    即需求结构化和分析约束影响

    为什么要进行需求结构化,因为需求是有结构的,对需求结构化的过程的admems方法铁建一项架构设计的真实实践,通过admems矩阵思维工具,可以全面理解需求的各个层次,将需求原本的含义多方位,立体化地展示出来,也就是见需求中的隐喻挖掘出来,来还原出更为原始的需求关系。

    规格说明书中虽然对于规格有详细地进行说明,但是在规格说明书中并不是架构师奉行的圣旨,架构师站的角度是在更高的层次,需求变动是经常地,要对需求进行理性分析,然后取舍补充。

    为什么分析约束影响:

    因为在需求中隐藏了大量的风险因素,如果不对其静下心考虑的话,那么对于整体架构而言有时候是致命的。

    书中对其的描述是:一旦你忘了它,他就会找上门来制造麻烦。

    对于架构设计而言,在其中相应引入觉得的话,能够应对这些麻烦。在pre-architecture的阶段过程中就必须要对约束影响进行分析,这是属于一种未雨绸缪的思想。

    admems中有个约束分类的理论,他要求我们清楚业务环境,使用环境,构建环境分别考虑客户用户,开发方涉众。

    针对具体的问题,来进行针对性地考虑,对于多方用户而言往往都需要考虑这样一个过程。

    约束是架构设计的上下文,也就是架构设计中的关节,连接起架构的整体部分。

    正如书中所说的:没有全局观念就不可能成为架构师。约束是架构设计要决绝问题的上下文

    架构师对于全局的理解必须要比普通的人站在更高的层次上,否则对于整体的设计而言都可能是致命的,或者会直接导致整体的失败,对于这种环境下,要多方面高层次地对系统,环境,涉众进行详细分析考虑

    分析过程中可用推导法,查漏法等方法。

  • 相关阅读:
    Virt-install用法:
    kvm笔记
    配置centos7解决 docker Failed to get D-Bus connection 报错
    linux系统下的用户文件句柄数限制
    Linux下如何通过命令检查网卡是否插上网线
    data命令详解
    cron job 里面,如何让脚本半分钟运行一次?
    bash编程之循环控制:
    bash编程之case语句,函数
    0129集训授课——面向对象思想(一):封装与抽象
  • 原文地址:https://www.cnblogs.com/halone/p/12671889.html
Copyright © 2020-2023  润新知