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

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

    内聚和耦合

    软件设计的关键品质是内聚和耦合。这不是什么新奇的“面向对象”概念;我们的目标是通过设计使系统的组件具备下列品质:

    高内聚:

    内聚是一个测量指标,说明相关的功能如何聚集在一起,模块内的各部分作为一个整体工作的如何。内聚性是将模块粘成一个整体的胶水。

    弱内聚的模块是不良分解的信号。每个模块都必须具有清晰定义的角色,而不只是一堆不相关的功能。

    低耦合

    耦合是模块之间独立性的测量指标--它们之间进出“电线”的数量。在最简单的设计中,模块几乎没有什么耦合,所以彼此之间的依赖关系较少。

    显然,模块不能够完全解耦,否则它们将根本不能够一起工作!

    好的软件设计会限制通信的线路,只提供那些绝对需要的。这种通信线路是确定架构的一部分因素。

    好的设计考虑到内部组件连接机制和连接数(以及连接性质)。系统的单个部分应该能够独立存在。紧耦合将导致不可测试的代码。

    松弛而模块的架构将导致每个代码组件编写得不好,并且相互之间匹配得不好。它也会导致重复的代码和工作。

    保持品质

    从一开始,“设计之城”就准备好了一些品质控制过程:

    • 结对编程。
    • 对没有结对编程的工作进行代码/设计复审。
    • 对每一段代码进行单元测试。

    这些过程确保了系统中从未加入不正确的,不合适的变更。所有不符合软件设计的内容都被拒之门外。

    管理技术债务

    随着最后期限的临近,一些不太重要的功能被砍掉,让产品能够准时推出。小的代码“瑕疵”或设计问题允许存在于代码集中,要么是为了让功能快一点实现,要么是为了在接近发布时避免高风险的改动。

    这些逃避职责的地方被标记为技术债务,并安排在后续的版本发布中修正。

  • 相关阅读:
    基于Metaweblog API 接口一键发布到国内外主流博客平台
    uva144 Student Grants
    Uva 10452
    Uva 439 Knight Moves
    Uva 352 The Seasonal War
    switch语句
    java——基础知识
    我的lua学习2
    codeforces 431 D. Random Task 组合数学
    codeforces 285 D. Permutation Sum 状压 dfs打表
  • 原文地址:https://www.cnblogs.com/duanxz/p/2765876.html
Copyright © 2011-2022 走看看