架构之美01

架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。本书围绕5个主题领域来组织本书的内容:概述、企业应用、系统、最终用户应用和编程语言。本书让最优秀的设计师和架构师来描述他们选择的软件架构,剥开架构的各层,展示他们如何让软件做到实现功能、可靠、易用、高效率、可维护、可移植和优雅。

    第一章:“架构”这一名词被广泛应用于多种学科。对于计算机学科而言,架构有所不同,它并不像是建筑学和音乐等学科,它有其独特的特性与含义。软件架构其实是一个行为上和结构上设计的过程,软件架构师和开发者在软件开发流程中有着不同的分工。架构师关注的应该侧重于软件系统的品质,而非开发者的功能层面。从整体来把握整个软件的开发,通过对软件品质的平衡,选择开发的侧重点,从而有效地让软件符合要求。架构的结构通常由以下几种构成:信息隐藏结构、使用结构、进程结构、数据访问结构。好的架构应该能经受的住评估,检验最终的性能。一些足够好的架构,值得我们去珍视、去学习,值得我们每个人了解并掌握。

   第二章本章使用两个软件系统的开发实例来为我们展示了架构的重要性。“混乱大都市”式的软件系统给开发团队中的每一个成员都带来的可怕的遭遇,不良的架构导致了深远的影响和严重的反弹,与此相对的“设计之城”式的软件开发就给作者带来了极佳的体验。架构会对软件项目的结果有着致命的作用。好的架构有以下几种相同点:有意而为之的前端设计、设计者的素质和经验、清晰的设计观点、重要的设计、合适的人员、延迟不重要决定、好的项目管理以及合适的期限。

开发团队中健康的工作关系将直接有益于软件设计。不健康的关系和个性膨胀会导致不健康的软件。

软件设计的关键品质是内聚和耦合。-- 高内聚(Strong cohesion)和低耦合(Low coupling)松弛而模糊的架构将导致每个代码组件编写得不好,并且相互之间匹配得不好。它也会导致重复的代码和工作。不良架构的影响不仅限于代码。它会进一步影响到人、团队、过程和时间表。重要的是要在开始设计系统之前知道你打算设计什么。如果你不知道它是什么,也不知道它将做什么,暂时不要开始设计它。只设计你知道需要的东西。

件系统就像是一座由建筑和后面的路构成的城市,本书使用抽象的例子两个软件城市生动的介绍了软件系统应处于哪种生存模式中。一个是“混乱的大都市”。并没有一套健康的架构,通过整个系统的阅读并不能清楚的各个之间的联系。这将带来一系列的后果。第一:导致这将成为一个很难让人理解的系统,这将几乎不可能修改。新加入项目的成员将不能理解系统。坏的架构设计又继续会招致更坏的架构。第二:缺乏内聚。每个组件本来应该有一个良好的角色,但是它们却包含了一堆杂乱的、不一定相关的功能。这很难弄清楚系统已经实现了哪些具体的功能。第三:代码的问题以及代码以外的问题。“大都市”的问题随着时间的推移问题将逐渐变的严重不可修复。从这里清楚的看到缺乏健康的架构的严重性。另一个则是与之相反的“涉及之城”与其最大的差异在于具有健康的架构。

时间: 2024-12-21 17:56:02

架构之美01的相关文章

架构之美阅读笔记01

初识架构,什么是架构,架构美在何处?不同领域的设计师对架构的理解大相径庭:软件架构师对一个好的架构的要求诸如对用户友好,响应及时,易维护,没有重大错误,易安装,可靠性高,可通过标准的方式同其他系统通信等等特点.通过进一步深入了解,更加深了对架构和架构之美的了解. "建造的艺术或科学,特别是设计和建造人类使用的建筑时的艺术或实践,同时考虑到美学因素和实用因素."架构是提供一种特定的方式来解决共同的问题,这种方式具有实用性和美学性:架构是美观.坚固.实用三个方面的平衡配合.好的系统架构展示

《架构之美》阅读笔记一

对于我们学习软件工程的学生来说,怎样来设计软件是一个非常重要的问题,通过阅读<架构之美>这本书,了解到了什么是架构,什么样的架构能够使软件更加的合理. 架构是系统设计的一部分,它突出了某些细节,并通过抽象省略掉了另一些细节.软件系统的架构包括行为上的和结构上的.外部行为描述展示了软件如何与用户.其他设备和外部设备进行交互,也就是需求.结构描述展示了软件如何被划分为多个部分,以及这些部分的关系. 在大多数人的谈论中,架构是一个目标产物,而作为架构师的责任就是去生产它.所以无论如何,架构是可以&q

架构之美阅读笔记之五

今天我学习的是架构之美的第五章--面向资源的架构:在web中.这一章,作者讲述说明了,企业中聚焦信息的架构展示了雨web一样的特点:伸缩性,弹性,架构歉意策略,信息驱动和访问控制等. Web服务的目标是提供建立可复用的业务服务基础的架构,希望能在不影响客户的情况下在各个地方以不同的编程语言异步地访问所有的功能,但是为了实现这个目标所用的技术组合使人感到迷惑,而且没有真正解决实际中组织机构的架构所面临的问题,,出现了一些服务恶化的问题. 面向资源的架构的标识是向命名的资源发起逻辑请求的过程,这些请

《架构之美》阅读笔记四

今天我阅读了<架构之美>第五章面向资源的架构在web中,这一章讲到现在我们过分强调了软件和服务,而却忽视了数据,现在大多数组织机构更容易在web上找到信息,而不是在他们自己的系统中.web在很大程度上是因为它增大了信息共享的可能性,同时也降低了门槛. 面向资源的架构的标识是向命名的资源发起逻辑请求的过程.这种请求由某种引擎解释,转成该资源的物理表现形式,面向资源的架构方法很优雅的实现了一些折中,一方面,对于传统的方法来说,这些方法可能看起来有些奇怪,而且没有尝试过.另一方面,它代表了人们设想和

架构之美读后感

<架构之美>读后感 唐凯风 2014301500366 架构是系统设计的一部分,它突出了某些细节,并通过抽象省略掉了另一些细节.软件系统的架构包括行为上的和结构上的.外部行为描述展示了软件如何与用户.其他设备和外部设备进行交互,也就是需求.结构描述展示了软件如何被划分为多个部分,以及这些部分的关系. 架构的设计受到许多因素的制约,架构是好是坏并没有统一的标准.这取决于人们对软件的需求.软件被构建和运行的环境,以及软件团队本身的特点等等因素.评价软件好坏有很多指标,例如性能.安全.可伸展性等等.

架构之美阅读笔记之三

今天我学习的是架构之美的第三章--伸缩性架构设计.这一张也是涉及到了第二部分,企业级用用架构.首先我们要引出,伸缩性架构设计,也就是为什么要伸缩性的架构.主要原因是,我们在设计系统架构Ⅹ,要确保系统在伸缩时的弹性.为了适应使用软件架构的不同应用程序,使用该架构的程序员等,软件系统架构必须要具有伸缩性. 要是系统架构是伸缩性的,则系统应该是分布式的,并发的.就像书中讲到的Darkstar项目,由于在线人数,不同时间等的影响,游戏的负载情况也会不同,服务器的数量,连接方式,为了应对这些不同的情况,也

《架构之美》这本书的翻译版就是彻头彻尾的垃圾

上周手贱,入了<架构之美>的翻译版,花了我1.5只大虾币,今天用香皂好好洗了洗手准备瞻仰来着,看了一段序就把我雷倒了. 摘取一句大家瞻仰一下: 每个事实应该是单一的.不可分解的单元(我不理解什么是事实,我从来也没有见过,什么是不可分解的单元?单元好吗?) 其他的就不说了,我已经没有勇气读不下去了,感觉话都读不通顺了,老师教育我们说翻译要遵循“信.达.雅”的原则,咱是程序员,不是读名著,这些要求有些高,但至少句子要通顺吧,约定的术语要有吧,不要老是找些外行指导内行,几位翻译者的学历和经历都很NB

电子书 架构之美.pdf

本书围绕5个主题领域来组织本书的内容:概述.企业应用.系统.*终用户应用和编程语言.本书让*很好的设计师和架构师来描述他们选择的软件架构,剥开架构的各层,展示他们如何让软件做到实现功能.可靠.易用.高效率.可维护.可移植和优雅. 限个人学习使用,不得用于商业用途,请在下载后24小时内删除.备注:资源来自网络,如有不合理可私信我,秒删.电子书 架构之美.pdf 免费下载https://page55.ctfile.com/fs/14299555-205000277

《架构之美》阅读笔记01

一.阅读内容 第一章架构概述 第二章两个系统的故事:现代软件神话 二.笔记总结 (1)什么是软件架构? 其实在好多学科中都用到了"架构"这个词,大都表达了对所创造作品的描述,或者是对创造过程的计划.但是在软件专业中还有更具体的表达.软件架构不是一个简单的实体,软件架构师需要用多分文档来对软件的行为和结构进行描述,以此来形成软件架构.<软件架构实践>一书对软件架构的规范化定义是这样的,一个程序或计算机系统的软件架构是系统的一种结构或一组结构,包含了软件元素.软件元素外部可见的