zoukankan      html  css  js  c++  java
  • ADMEMS方法体系:3个阶段,一个贯穿环节之Refined Architecture阶段阅读感悟

      1.细化架构是相对于概念架构而言的,而架构设计仅仅进行到概念架构层面,对支持团队的并行开发而言是远远不够的。常见的错误就是把《方案书》中的概念架构设计部分直接作为《架构设计文档》提交。

      2.谈到架构,必须先说一下OO,即Object Oriented(面向对象),面向对象是软件开发方法,面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构结构、CAD技术、人工智能等领域。但是OO依旧只是软件开发方法,而并不是软件架构方法,不能完全涵盖软件架构方法。

      如下图,软件架构5视图所涉及的逻辑架构、物理架构(面向节点)、开发架构(面向文件)、运行架构(面向控制流)、数据架构(面向Table/文件)并没有全面受到OO方法的指导。

      3.架构设计是一门解决复杂问题的实践艺术,所以,分而治之的思想必不可少,分而治之,目的是“治”而不是“分”。而分而治之中“多视图方法”又恰恰支持细化架构。现代系统非常复杂,很难一下领会。相反,在任何时刻,我们只能把注意力放在软件系统的一个或几个结构上。为了有意义地传达架构的信息,必须说明此刻正在讨论哪个或哪些结构——即采用的是架构的哪个视图。
      所以,多视图方法有两个方面的实际意义:
       #利于思考(因为分而治之的思维方式)。

         #便于交流(因为在一定程度上分离了涉众关注点)。

      4.一线架构师最缺的不是理论, 也不是技术,而是位于理论和技术之间的“实践策略”和“实践套路”。
                                                  ——一线架构师实践指南
         划分子系统的实践策略可归纳为3种:分层(Layer)细化,分区(Partition)引入,机制提取。这里要注意的是,为了支持迭代开发逻辑架构设计中必须引入分区。

    机制的定义:软件系统中的机制,是指预先定义好的、能够完成预期目标的、基于抽象角色的协作方式,同事也包含了协作流程。基于接口(和抽象类)的协作是机制,基于具体类的

    协作则算不上机制。

      逻辑架构的整体思维套路要点:1.质疑驱动;2.结构设计和行为设计相分离。
      5.增加硬件 = 增加计算能力 ≠ 软件的实际服务能力增强

      计算与计算往往不是孤立的,它们之间存在着复杂的“生产者——消费者”关系,所以软件的实际服务能力不仅受到“硬件资源”的制约,也受到“数据短缺”和“数据争用”的制约。

      6.物理架构设计主要有三项任务:

        #硬件选择与物理拓扑

        #软件到硬件的映射关系

        #方案的优化

      7.数据架构的难点:数据分布

        确定数据分布方案是数据架构设计的难点。越是大系统,数据分布越关键。因此,一线架构师迫切须要建立数据分布策略的大局观。
    数据分布的6种策略:独立、集中、分区、复制、子集、重组。如下图

        #非复制方式包括3种具体策略:集中、分区、独立Schema。
        #复制方式也包括3种具体策略:复制、子集、重组。

     ###以上就是我阅读《一线架构师实践指南》一书的有关总结与一些想法。

  • 相关阅读:
    基于Metaweblog API 接口一键发布到国内外主流博客平台
    uva144 Student Grants
    Uva 10452
    Uva 439 Knight Moves
    Uva 352 The Seasonal War
    switch语句
    java——基础知识
    我的lua学习2
    codeforces 431 D. Random Task 组合数学
    codeforces 285 D. Permutation Sum 状压 dfs打表
  • 原文地址:https://www.cnblogs.com/zhangzhongkun/p/12671352.html
Copyright © 2011-2022 走看看