Refined Architecture阶段读后感
一线架构师实践指南第三部分Refined Architecture阶段读后感
Refined Architecture阶段最开始以细化架构入手阐述了如果一个项目的系统架构(包括理论基础)尚未确定,就不应该进行此系统的全面开发的道理从而表达细化架构的重要性。也说明了为什么他被广泛采用,从概念架构到细化架构,先设计概念架构,构思关键问题的解决策略;再进行细化架构的设计,以保证为开发提供足够的指导和限制.....这符合人类解决问题的规律,因此被广泛采用。这本书用身边的例子来引出问题从而进一步的讲解使我们能够更加容易的理解。
在系统开发过程中不同职责的人对于软件架构有着不同的看法,因为他们会从不同的角度来看,实际上所有的想法都应该被包括其中,如何实现呢?答案就是贴近实践的多视图方法,涵盖一线架构师的各项具体工作。
我阅读的是一线架构师实践指南第三部分Refined Architecture阶段的相关内容
所以什么是Refined Architecture呢?Refined Architecture是相对于Conceptual Architecture而言的,它们是架构设计的两个层次,
分别对应于“概念级”解决方案和“规约级”解决方案(如图12-1所示)。须要注意的是,Refined Architecture (细化架构)属于架构设计,不能与Detailed Design (详细设计)相混淆。
了解了什么是Refined Architecture,那么他有什么实在意义呢?
Refined Architecture主要有两个方面的实际意义:一是利于思考(因为分而治之的思维方式)。二是便于交流(因为在一定程度上分离了涉众关注点)。
然后就是了解Refined Architecture的业界现状;因为00方法太过于流行导致很多人将多视图方法误认为是00方法的分支。其实,无论是00方法,还是结构化方法,都远未涵盖架构设计的全部。所以,只具有00技能对架构师而言是不够的;很多人在区分“阶段”和“视图”时会出现问题;
三、00方法并不能通用于所有情况,00可以指导逻辑架构视图的设计,但00方法对物理视图等的设计指导很弱。另一方面,即使是逻辑架构的设计,也未必都是以00方法为指导的。例如,大量嵌入式软件和系统软件仍以C语言为主要开发语言,其逻辑架构设计还会以结构化方法为指导。
对于即将成为一线架构师的我们最缺的不是理论, 也不是技术,而是位于理论和技术之间的“实践策略”和“实践套路”。
就划分子系统这个架构师必做的工作而言,其实践策略可归纳为3种:分层的细化、分区的引入、机制的提取。划分子系统必须通过这3种手段的综合运用,才可更理性、更专业地展开逻辑架构的设计。对于身为大学生的我来说无论做什么事情我都会有自己的原则,就像上课的时候一定不能打游戏,这就是原则,当然划分子系统也有它的原则;下面是分层的细化、分区的引入、机制的提取这3种策略背后的4个通用设计原则:职责不同的单元划归不同子系统、通用性不同的单元划归不同子系统、需要不同开发技能的单元划归不同子系统、兼顾工作量的相对均衡,进一步切分太大的子系统。有了这些原则才能很好的划分出子系统就像我有了这些原则才能够变得更加优秀!
看了这本书才知道数据分布有六种策略:独立、集中、分区、复制、子集、重组;而这六种策略也需要有限制他们的因素——三大原则,即把握系统特点,确定分布策略(合适原则)、不同分布策略,可以综合运用( 综合原则)、从“对吗”“好吗”两方面进行评估优化(优化原则)。
架构设计是一个过程, 合理的架构往往需要团队甚至外部的意见,因此注重优化原则很重要。一个有用的技巧是:当难以“一步到位”地做出数据分布策略的正确选择,以及还存在质疑时,应从“对吗”、“好吗”两方面进行对比、评估、优化。
通过阅读这一部分我对软件架构师这个行业有了更深一步的认识,对Refined Architecture有了更深的理解,得到了多启发解决了我以前的一些误区也有了自己的一些见解,我相信这对以后即将成为软件架构师会有很大的帮助,总体来说受益匪浅!!!