zoukankan      html  css  js  c++  java
  • 架构之美01

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

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

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

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

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

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

  • 相关阅读:
    LeetCode 977 有序数组的平方
    LeetCode 24 两两交换链表中的节点
    LeetCode 416 分割等和子集
    LeetCode 142 环形链表II
    LeetCode 106 从中序与后序遍历序列构造二叉树
    LeetCode 637 二叉树的层平均值
    LeetCode 117 填充每个节点的下一个右侧节点
    LeetCode 75 颜色分类
    redhat 7.4 挂载ntfs格式的u盘并且使用
    redhat 查看CPU frequency scaling(CPU频率缩放)
  • 原文地址:https://www.cnblogs.com/hanzhu/p/6368207.html
Copyright © 2011-2022 走看看