Pre-Architecture 阶段阅读笔记 Pre-Architecture 阶段阅读笔记

什么是Pre-Architecture

 Pre-Architecture以温昱老师的说法,“磨刀不误砍柴工 ”Pre-Architecture就是架构设计的磨刀阶段,其主要的工作目标包括:理解需求,建立需求大局观,确定架构设计方向。

书中的这部分包括第11-15章,分别讲了细化架构的故事、Refined Architecture总论、逻辑架构、物理架构、运行架构、开发架构、以及数据架构的难点——数据分布。

对于两个关于细化结构的故事——骄傲的架构师,郁闷的程序员以及办公室里的争论,我的感想如下,两个故事指出细化架构以及五视图方法实践的重要性,正如书中提到的两句对我比较有启发的话。

“如果一个项目的系统架构(包括理论基础)尚未确定,就不应该进行此系统的全面开发。”

“如果选择视图的工作没有做好,或者以牺牲其他视图为代价,只注重一个视图,就会冒掩盖问题以及厌恶解决问题(这里的问题是指那些最终会倒是失败的问题)的风险。”

Pre-Architecture视图:

  • 视图的意义是利于思考(因为分而治之的思维方式)、便于交流(因为在一定程度上分离了涉众关注点);
  • 视图并不是阶段,如逻辑架构与物理架构只是同意阶段需要考虑的两个方面;
  • 在总图中,每一个视图是一个思维角度,要从不同角度出发,规划“分割”与“交互”;

Pre-Architecture 阶段阅读笔记
Pre-Architecture 阶段阅读笔记

  •  在详图中,每个视图是一组技术关注点;

Pre-Architecture 阶段阅读笔记
Pre-Architecture 阶段阅读笔记

逻辑架构——划分子系统、定义接口

划分子系统的三种方法:分层的细化、分区的引入(架构中引入分区,支持深度优先的迭代开发)、机制的提取(基于接口(或抽象类)的协作是机制,基于具体类的协作则算不上机制;实现不同的最终功能可以重用同一个机制),及“总-分-总”

划分子系统的四个重要原则:职责不同的单元划归不同子系统; 通用性不同的单元划归不同子系统; 需要不同开发技能的单元划归不同子系统; 兼顾工作量的相对均衡,把太大的子系统进一步做切分。

定义接口,避免“我的接口我做主”的错误思想,要协作定义。