《一线架构师》之Refined Architecture阶段

Refined Architecture,译为【精致的建筑】。顾名思义,是要建立起一个精细的,美感与多功能并存的建筑。然而建筑本体是一个比较大的框架,其多功能的具体实现还要以后续的方式进行。这一阶段在本书的第三阶段,前两个阶段的内容大致为:pre-Architecture阶段、conceptual Architecture阶段,其名称为【前架构】、【概念架构】。

当一栋建筑的修建目标被确立时,就启动了一系列的进程来实现它。首先我们要明确的是该建筑的用途所在,是要供人居住生存还是办公,亦或是用作纪念观赏。其中每个类型又被分为若干个精确地服务类型。这就是我们的pre-Architecture。

当我们明确了所有需求目标之后,就要到草图来发挥它的作用了。这就是一个整体的概念架构,比如说整个工程的占地面积,高度等等。这在我们的软件开发过程之中也是如此。

试想一下,我们现在完成了大体的工作规划,可是各部门该怎么做?要怎样去落实这一个工程的具体进展?这就到了本文要讲述的阶段——Refined Architecture阶段。

书中提到,Refined Architecture是相对于Conceptual Architecture而言的,它们是架构设计的两个层次,分别对应于“概念级”和“规约级”解决方案。需要注意的是,Refined Architecture属于架构设计,不能和Detailed Design(详细设计)混淆。

在书中的这个阶段,作者提到了细化架构、Refined Architecture总论、逻辑架构、物理架构、运行架构、开发架构、以及数据架构。

一开始作者用了两个小故事来引入我们对细化架构的思考——骄傲的架构师、郁闷的程序员,办公室里的争论。它们都不约而同的指出了细化架构和五视图方法的重要性。正如书中提到:

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

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

五视图:

这五个视图各司其职,各自拥有者自己的使命:职责划分(逻辑视图)、程序单元组织(开发视图)、控制流组织(运行视图)、物理节点安排(物理视图)、持久化设计(数据视图)。

“思考最大的障碍在于混乱。抓住每个视图的思维立足点,5视图的方法就显得相当清楚了”。

五视图详细:

看似复杂的五视图方法其实并不难,因为每个视图都是从特定角度出发规划系统的分割与交互,都是“组件+交互”的体现。

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

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

分层(layer)的细化:

分区:

定义接口,避免出现“我的接口我做主”的思想,因为这个观点是错误的,每个模块或者子系统(甚至类)无视协作需要进行的接口定义很难顺畅的被其他模块和子系统所使用的。

质疑驱动的逻辑架构设计:

需求对架构设计的“驱动”作用,是伴随着架构师“不断设计中间成果——不断质疑中建成果——不断调整完善细化中间成果”的过程进行展开的。

原文地址:https://www.cnblogs.com/990906lhc/p/12676447.html

时间: 2024-08-02 01:41:36

《一线架构师》之Refined Architecture阶段的相关文章

Refined Architecture阶段读后感

一线架构师实践指南第三部分Refined Architecture阶段读后感 Refined Architecture阶段最开始以细化架构入手阐述了如果一个项目的系统架构(包括理论基础)尚未确定,就不应该进行此系统的全面开发的道理从而表达细化架构的重要性.也说明了为什么他被广泛采用,从概念架构到细化架构,先设计概念架构,构思关键问题的解决策略;再进行细化架构的设计,以保证为开发提供足够的指导和限制.....这符合人类解决问题的规律,因此被广泛采用.这本书用身边的例子来引出问题从而进一步的讲解使我

[转]《一线架构师实践指南》—— 读后总结

原文:<一线架构师实践指南>—— 读后总结 之前总觉得架构是一件很高大上的工作,跟普通的编码设计不太一样.前一段实践,自己也尝试做过架构的工作,可惜经验不足导致架构非常混乱.这里读完这本书,大体上对架构的工作有所了解,也稍微摸清了些门道. 我理解的架构 我理解的架构就是基于某些需求,设计代码的基础框架.既然是基于需求,那么肯定要面临不少需求的扩展以及变更,这时就需要架构能够灵活方便的适应变化.因此,架构的工作我的理解更多的是提前预料到未来的变化,提前做好改变的准备. 架构设计的大体思路为: 时

一线架构师实践指南第三章读后感

第三章主要讲述了refinend architecture阶段,包含了细化架构和逻辑架构的讲解. 细化架构保证保证为开发提供足够的指导和限制,从概念架构到细化架构,先设计概念架构,构思关键问题的解决策略;再进行细化架构的设计.作者引用一个小故事讲述了细化架构的重要性,概念架构难以支持并行开发.要支持开发组相对独立地进行工作,须要提供指导和限制作用更明确的“规约”级的设计.在细化架构中,接口占据非常核心的地位,而概念架构并不关心明确的接口定义(只有抽象的组件和抽象的交互机制). 细化架构和概念架构

一线架构师第三部分——细化架构

架构师的工作是领导团队的开发,但很多情况下,架构师是坐镇帷帐之中而决胜千里之外的,拥有千里的运筹能力或许就是能让项目团队一路走向成功的重要因素.对于架构师来说需求分析.分割层次.对象建模这些都是他们的拿手好戏,而在架构师对项目的需求进行合理架构后,就能得到一个初步的概念模型. 概念模型是投标.售前.市场宣传等工作的强有力的支持,一个良好的模型能有效的帮助项目整体的前期搭建与后续优化,所以这也是为什么架构师如此重要. 概念模型作为架构师的必修课,实际上架构师还需要一门重要的“辅修课”——细化架构和

八年一线架构师,带你0基础入门大数据

在职八年老司机带你0基础入门大数据 ,教你如何从小白变成行业精英 ,让高薪变的简单! 孙老师太阁孙老师具备8年从业经验,4年大数据经验,4年培训讲师经验,精通java python 和大数据生态圈,曾担任清华大学JAVA技术研究与开发联合实验室研究员,设计过滴滴大数据架构,以及国家级项目,对于数据的处理和分析有独到的见解,对于教学能够如浅入深,有丰富的软件设计,软件研发,软件管理,流程控制经验点击进入课程 官方网址:www.tigerlab.net太阁博客:blog.tigerlab.net官方

软件架构师与架构师

软件架构师 软件架构师这个称呼不是拍脑袋想出来的,是有国际标准(ISO/IEC 42010)可查的.架构师是软件开发活动中的众多角色之一,它可能是一个人.一个小组,也可能是一个团队.微软对架构师有一个分类参考,我们参考一下,他们把架构师分为4种: 企业架构师EA(Enterprise Architect).基础结构架构师IA(Infrastructure Architect).特定技术架构TSA(Technology-Specific Architect)和解决方案架构师SA (Solution

架构师

架构师 系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物. 工作职能编辑 确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节.扫清主要难点的技术人员.主要着眼于系统的“技术实现”.因此他/她应该是特定的开发平台.语言.工具的大师,对常见应用场景能马上给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价. 系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整

系统架构师成长之路(一)

   背景:系统架构师是近几年来在国内外迅速成长并发展良好的一个职业,它对系统开发和信息化建设的重要性及给IT业所带来的影响是不言而喻的.在我国,虽然系统架构师的职业在工作内容.工作职责以及工作边界等方面还存在一定的模糊性和不确定性,但它确实是时代发展的需要,并正在实践中不断完善和成熟. 通常从组织上划分,架构师分为以下几大类:业务架构师(Business Architect).主题领域架构师(Domain Architect).技术架构师(Technology Architect).项目架构师

周爱民:真正的架构师是没有title的(图灵访谈)

周爱民,现任豌豆荚架构师,国内软件开发界资深软件工程师.从1996年起开始涉足商业软件开发,历任部门经理.区域总经理.高级软件工程师.平台架构师等职,有18年的软件开发与架构.项目管理及团队建设经验,曾任盛大网络平台架构师.支付宝业务架构师,是 Borland Delphi 产品技术专家,也是 Qomo 开源项目(JavaScript)的发起者.2003年5月被美国 Borland 公司授予「Borland Delphi 产品专家」称号,并授予「论坛特别贡献奖」.著有<大道至简——软件工程实践者