
温昱著
本书是畅销书《软件架构设计》的第二版,本书紧紧围绕“软件架构设计”这一主题,立足实践解析了软件架构的概念,阐述了切实可行的软件架构设计方法,提供了可操作性极强的完整的架构设计过程。另外,本书从思维方式的突破、面向对象设计、UML建模、过程与管理等关键过渡环节,为广大程序员的成长提供了切中肯綮的指导。相对第一版,本书更加侧重于从程序员成长的角度写作,高度而巧妙地结合理论与实践,包含大量来自开发一线的实际案例。
一般,没有什么深入的表述,停留于表面。
个人认为本书的作者是一位能力很强,实战经验丰富的人,但本书适合有一些年工作经验和一些知识储备的读者阅读,因为跨度大,设计的知识面很广
极力推荐!给出了从需求到设计方案的一套实践方法流程,相对于UML来说,更系统全面,也更亲民。三个很赞的地方,第一个是五大视图十五个设计任务; 第二个是增量鲁棒图;第三个是点出了非功能需求的重要性。最近工作最深的体会是,80%的人所看到的系统功能需求的工作量其实只占到了整个系统工作量的20%,妥妥的二八法则。茅屋能住,别墅也能住,以前觉得产品竞争力来自于功能,现在觉得非功能需求也是很大的影响因素。当然别墅比茅屋多的那部分是功能还是非功能是个模糊的问题。
很早买了实体书,看了之后已经忘的干净了、那时候刚接触软件开发没多久,对整个架构的事情也不是很理解,现在再拾起来看了一遍电子版,感觉本书还是很贴合实际,针对软件架构设计方面确实给出了可以落地的设计思路,结合举例做练习,相信对初级架构师来说能有一部分指导意义
对有志成为架构师的程序员,或者想好好研究设计方法的新手有借鉴意义。文中提供了很多专业方法和术语,参考之,可以快速进入角色。
架构即顶层设计;框架是面向编程或配置的半成品;组件是从技术维度上的复用;模块是从业务维度上职责的划分;系统是相互协同可运行的实体。 1.概念思想的解析 组件分为原子组件和复合组件两种;在特定的实践上下文中,原子组件是不可再分的;复合组件是由其他组件(既可以是原子组件,又可以是复合组件)组合而成的;无论是原子组件还是复合组件,它们之间都可以通过交互来完成更复杂的功能。 一个架构视图是对于从某一视角或某一点上看到的系统所作的简化描述,描述中涵盖了系统的某一特定方面,而省略了与此方面无关的实体。 2.对于开发人员:则最关心软件架构方案中关于模块划分的决定、模块之间的接口如何定义、甚至架构指定的开发技术和现成框架是不是最流行的等问题; 3.架构设计的实践脉络 【原则1】看透需求 【原则2】架构大方向正确 【原则3】设计好架构的各个方面 需求分析,领域建模,确定关键需求,概念架构设计,细化架构设计,架构验证。 4.架构设计的速查手册 需求分析活动输出的“需求”,必须涵盖功能、质量、约束这三个方面,这些是后续设计活动所需要的。 5.模块划分的4步骤方法——EDD方法 封装驱动设计方法(Encapsulation-Driven Design方法,EDD方法)的目的是:细粒度模块划分。综合运用分层、分层细化、功能模块、通用模块、通用机制框架化等多种手段,是该方法的特点。
很好的书,忍不住买了本纸质的没事翻着看。记得以前有看一本大象希形面对对象分析和设计。基本上可以说跟这本书如出一辙。都是讲需求到业务分析、用例抽取、领域建模、概要设计、精化。结合uml建模的。多看几本之后,忽然觉得只会写几行代码都不知道领域是什么概念的人都是喷子。纯技术论、解决具体技术难点的都只是初中级程序员,达不到系统划分、模块划分的高度。搭个框架写个技术组建就空架构都是装逼。路漫漫修远兮[偷笑]
这本书出于2012年,虽然现在看起来,里面阐述的技术相对落后,但是结合当时背景,应该算是不可多得的书,工程师们都喜欢用技术说话。但是这本书中,需求和约束贯穿全书,不能说质量属性(技术)不重要,但是总归工程化思维是要结合实际,是要落地的,是要稳定的,互联网野蛮生长崇尚一种敏捷开发,快速迭代开发,但互联网始终是互联网,技术架构能快速增长得益于行业需求,但it不仅是互联网的it,它更是服务于其他行业的。例如工业数字化,互联网快速迭代那一套(MVP,最小价值产品等),极难适用于工业数字化,产线如何配合,成本如何控制,该从什么方向落地等,当一个行业利润高度依赖成本控制、核算,它需要不断仿真才能逐渐在真实情况落地。工程师们是否要回归本初,去想首先这是工程,其次再是it,架构的设计更多是参考工程化思维,而不主要是it技术。peace
架构验证是一个必须的环节,以免后续出现大规模的返工、推到重做甚至是项目流产。要验证的方面有功能展现方面、性能方面、技术障碍方面、框架的分层和分块方面等等。针对不同方面可以采取不同的验证方案,对于性能和技术难点垂直验证是比较好的,保证关键模块的技术能实现并且保证质量;对于功能和模块划分以及接口和通讯方式的设计水平验证比较好,并且可以模拟想象一下模块集成或者协作的情况。并且不管采用那种方式都可以结合演进和框架法,在验证一项指标的同时去实现功能以及整体框架的设计合理性
任何行业 存在很多隐藏高手 都是实战,但要可以 重复的 传承 很难,因为 他们都 没有规范,没有传承,都是靠全身细胞一体合成,软件架构也是一样,说白了 就是设计的软件 可持久性,可防范 各种风险,扩展性灵活,好用,但具体到 细节 不是书本 能完成的,书本的规范化,系统化 只能帮助起步