• 一线架构师实践指南一书第三编Refined Architecture阶段 阅读感想


    1.关于概念架构和细化架构   1)层次:系统 用户 业务 角度:功能 约束 质量属性   2)架构=组件+交互   3)概念架构仅关注高层组件,对高层组件的“职责”进行了笼统的界定,并给出了高层组件之间的相互关系,其不涉及接口细节(只有抽象组件和抽象交互机制)。这些都是预习书本时玉带的知识点。

      对于什么是架构?每个角色都有自己的关注点,不同涉众看待软件架构的视角自然也是不同的。不过也不是无迹可寻,大致可以从五个角度来划分:逻辑(职责划分) 物理(物理节点安排) 开发(程序单元组织) 数据(持久化设计) 运行(控制流组织)。也就是五视图,每个试图,一个思维,一组技术关注。这便是细化架构。

      架构最重要的一点,就是它能把难以处理的大问题分解成便于管理的小问题。就划分子系统策略,可归纳为3种:

      分层的细化:可简单地概括为MVC模式,模型(model)-视图(view)-控制器(controller),它们各自处理自己的任务

      分区的引入:引入分区,以便于支持深度优先的迭代开发

      机制的提取:基于具体类的协作则算不上机制、基于具体类的协作则算不上机制、基于接口(或抽象类)的协作是机

    制,实现不同的最终功能可以重用同一个机制。

    而划分子系统的依据4个重要原则:
      职责不同的单元划归不同子系统
      通用性不同的单元划归不同子系统
      需要不同开发技能的单元划归不同子系统
      坚固工作量的相对均衡,进一步切分太大的子系统

      协作决定接口,"分"是手段,"合"是目的,不能合在一起支持更高层次功能的模块,有何用?
    设计模式是基础,要站在各个角度看软件架构。并且通过质疑“对不对”和“好不好”,可以发现新职责,或者调整协作方式。

     

    开发架构的设计内容:(1)将“逻辑结构”映射为程序单元开发技术选项:开发语言,平台工具

    要自主编写的源程序可重用的库、框架其他方式(shell脚本,平台配置文件)

    此外重用也是一个重点。

  • 相关阅读:
    无监督聚类K-means算法
    Python程序执行顺序
    修改jupyter notebook响应的浏览器
    Vijos1035 贪婪的送礼者 [map的应用]
    POJ 2976 Dropping tests [二分]
    POJ 3111 K Best 最大化平均值 [二分]
    HDU 2899 Strange fuction [二分]
    HDU 2141 can you find it [二分]
    HDU 4004 The Frog's Games [二分]
    HDU 1969 Pie [二分]
  • 原文地址:https://www.cnblogs.com/1502762920-com/p/12673448.html
Copyright © 2020-2023  润新知