• 架构之美 摘抄


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

    内聚和耦合

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

    高内聚:

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

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

    低耦合

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

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

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

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

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

    保持品质

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

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

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

    管理技术债务

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

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

  • 相关阅读:
    leetcode:Valid Parentheses(有效括号匹配)
    leetcode:Remove Nth Node From End of List (移除从尾部数的第N个节点)
    leetcode:Letter Combinations of a Phone Number(手机号码的字母组合)
    leetcode:4Sums(四个数相加的和)
    leetcode:3Sum Closest
    leetcode:3Sum (三个数的和)
    leetcode:Longest Common Prefix(取最长字符串前缀)
    php数据访问
    PHP 基础知识测试题
    面相对象设计模式
  • 原文地址:https://www.cnblogs.com/duanxz/p/2765876.html
Copyright © 2020-2023  润新知