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

软件构建中的设计

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

前言

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

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

软件设计

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

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

理想的设计特征

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

如何开启设计

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

软件设计规则

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

相关文章

  • 软件构建中的设计

    前言 最近在编写设计文档时,参考《代码大全》,其中有很多观点值得参考。可以根据一些设计点反思自己的设计是否足够完善...

  • 软件设计的关键设计概念

    《代码大全》第5章 软件构建中的设计 读书笔记 管理软件的复杂度 设计层次 1. 软件系统 2. 子系统或包 常用...

  • 代码大全2 读书笔记(一)

    软件构建中的设计(第5章) 高质量的设计常见的特征 1 最小的复杂程度:设计的首要目的就是要让复杂度最小...

  • JavaScript/<代码大全>笔记

    第五章 软件构建中的设计 设计是一个险恶(wicked)的问题(不可控部分)险恶的问题就是那些只有通过解决或部分解...

  • etl开源免费工具Taskctl-Web版操作界面介绍

    平台简介 Taskctl 遵循软件产品标准化的原则,以“专业、专注”为设计理念,结合ETL 调度领域自身的特点,构...

  • 设计模式概要(一)

    设计模式是软件开发人员在开发过程中面临一般问题的解决方案,我们用的java库中,尤其是J2EE中,有大量设计模式构...

  • 软件架构图——RUP4+1架构方法(来源于网络)

    RUP4+1架构方法 RUP4+1架构方法采用用例驱动,在软件生命周期的各个阶段对软件进行建模,从不同视角对系统进...

  • P1设计模式简介

    软件设计的目标: 什么是好的软件设计?软件设计的金科玉律:复用! 常用的软件设计方法: 分解(分而治之) VS ...

  • 5个关于如何用设计思维来打造成功应用的技巧

    在我们之前的博客文章中,我们分享了如何使用无代码软件实现设计思维策略可以让应用程序开发更快,但是如何使您更有效地构...

  • CMake入门(一)

    Written with StackEdit. CMake是什么 CMake是一个opensource的软件项目构...

网友评论

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

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