代码大全读书笔记(3)

时间:2021-09-21 16:06:35

5.1 设计中的挑战

软件设计即构思、创造或者方面一套方案,把一份计算机软件的规格说明书要求转变为和实际运行的软件。设计过程中哪些值得注意的呢?

1、设计是一个险恶的问题

险恶问题的定义是只有通过解决或部分解决才能被明确的问题,即就是一个试错的过程。但个人觉得,这是对初次涉及或者全新问题域来说的,因为完全没有经验,没有借鉴,只能自己去尝试,然而,对于工作中的绝大多数问题,都是经验性、重复性的问题,可能整个系统要解决的问题各异,但是落实到各个子系统、各个模块,我想基本上是大同小异的。但是,在做设计时需要保持试错的心态,不可能一蹴而就的完美的设计出解决方案。

2、设计受到诸多因素

设计是一定要考虑并且列出当前系统的约束,如果随心所欲的进行设计,那么得出来的结果往往也是和实际不符的。

3、设计是不确定的

千人千面。

5.2 关键的设计理念

1、管理复杂度

软件的首要使命:管理复杂度。这个不敢苟同,个人觉得软件的首要使命是解决问题,软件管控的首要使命才能是管理复杂度吧。因为复杂度是软件的 一个核心、上层的概念,复杂度直接决定了软件构架的质量,实现难度、测试难度、项目进度和维护成本。

2、理想的设计特征

1)最小复杂度

应该专注于简单并且易于理解的设计。

2)易于维护

3)松散耦合

设计时让程序各个组成部分的关联性最小。模块化设计。

4)可扩展性

功能扩展时,不影响到原有程序的结构。即扩展时,做到只增不改。

5)可重用性

6)高扇入

让大量的类使用某个给定的类,高复用。

7)低扇出

一个类里少量的使用其他的类。松散耦合。