美文网首页
软件构建中的设计

软件构建中的设计

作者: 卖女孩的小火柴18 | 来源:发表于2019-12-08 17:40 被阅读0次

    前言

    最近在编写设计文档时,参考《代码大全》,其中有很多观点值得参考。可以根据一些设计点反思自己的设计是否足够完善。
    看完后,了解到设计有两个重点:

    1. 设计越简单越好
    2. 模块越清晰,越可分离越好

    软件设计

    作为开发人员,不应该试着一次性将大量程序塞进自己的大脑。一个时刻可以专注于一个特定的部分,考虑得才会越精细、透彻。软件设计目标:将系统分解为多个子系统,子系统间相互依赖越少越好。保持子程序的短小精悍有助于减少思考的负担。有句话叫做:程序是给人看的,顺便给电脑运行的。设计也是一样,要设计出让人接收起来没有那么多负担的代码设计。

    在对模块进行划分的时候,其实也是对模块进行抽象的过程。抽象就是用简化的观点来考虑复杂的概念。模块的内部实现方式不对外公开,外部只需要知道一些接口,即可进行交互。
    设计也有多种模块,比如抽象工厂、适配器、组合等等,可以参考书籍《设计模式》。

    理想的设计特征

    • 最小的复杂度。做出简单而且易于理解的设计。
    • 易于维护。设计出能够容易阅读的系统和代码。
    • 松耦合度。通过抽象、信息隐藏等原则,减少子系统间的关联。关联越少,集成、测试、维护工作量也会少。
    • 可移植性。方便移植到其他系统。
    • 精简性。设计出的代码,对于要实现功能,每行代码都是必需大的,保持阅读和功能的情况下,代码量最少。

    如何开启设计

    • 创建中央控制点。对于每一段有用的代码,只有一个唯一的地方可以看到它,并可以被控制在模块中。
    • 为测试而设计。为了能够更有效地测试每个模块内容,就容易产生更规整的接口。
    • 画一个图。在更高的抽象模式上表达问题。
    • 尝试使用多种设计方案,尝试设计的可能性越多,最终设计方案越好。

    软件设计规则

    • 是否分解得足够,系统->子系统->组件->子程序。子系统负责根据上层设计完成详细的功能。
    • 程序中不应该有环形关系。即A依赖B,B依赖C,C又依赖A模块。环形模块会让系统变得复杂,难以测试和维护。
    • 模块间的交互关系,是否已经设计为最小化了。
    • 是否有助于最小化偶然性。

    相关文章

      网友评论

          本文标题:软件构建中的设计

          本文链接:https://www.haomeiwen.com/subject/emwmgctx.html