(5)软件构建中的设计

来源:互联网 发布:pgp加密软件 编辑:程序博客网 时间:2024/05/02 15:48

新入的书, 超级激动. 目前的惯例是 CU上是转载文章, 博客园上记录日常随笔. 在这里准备写读书笔记, 等攒够一定篇幅, 我就开个专栏哈哈. 

_____________________________________________________________________________________________________________________________________________

1 设计 在编写具体代码之前先用伪代码写出一个类的接口, 或者几个类之间的关系图. 一个好的类或子程序的设计在很大程度上是由系统的架构所决定的.

2 软件设计 一词意味构思、创造或发明一套方案, 把一份计算机软件的规格说明书按要求换变为可实际运行的软件. 设计就是把需求分析和编码调试连在一起的活动

3 犯错是设计的关键 险恶的错误只有经历过才能解决,设计的优劣差异非常微妙

4 设计就是确定取舍和调整顺序的过程

5 设计是不确定的、受诸多因素限制的启发式过程、是自然而然形成的

1 好的设计源于对一小批关键设计概念的理解

2 软件的管理复杂度 不要同一时间把整个程序塞入大脑, 应该试着以某种方式去组织程序, 一个时刻专注于一个特定的部分

3 在软件架构层次, 把整个系统分解为多个子系统来降低问题复杂度

4 高代价、低效率设计的三个根源:

用复杂方法解决简单的问题

用简单但错误的方法解决复杂的问题

用不恰当的复杂方法解决复杂问题

5 管理复杂度:

把任何人在同一时间需要处理的本质复杂度的量减到最少

不要让偶然性的复杂度无谓地快速增长

6 设计范畴内的特征:

最小的复杂度: 避免聪明的设计, 聪明的设计常常难以理解

易于维护

松散耦合: 组成部分间关联最小

可扩展性: 能够增强系统结构而不会破坏底层结构

可重用性

高扇入: 让大量的类使用某个给定的类, 意味着设计出的系统很好的利用了在较低层次上的工具类

低扇出: 让一个类里少量或适中地使用其他的类. 高扇出(超过约7个)

可移植性: 应该这样设计系统, 使它能很方便地移植到其他环境

精简性

层次性: 保持系统各个分解层的层次性

7 好的建议 假如你正在编写一个新系统, 其中用到的很多设计不佳的代码, 这时你就应该为新写的系统编写一个负责同旧的代码交互的层

8 标准技术 尽量用标准化的、常用的方法, 让整个系统给人种熟悉感

9 设计的层次感 一个程序中的设计层次①软件系统 ②分解为子系统和包 ③分解为包中的类 ④分解为类中的数据和子程序 ⑤子程序的内部

P83 120

```

c= = 2

```

0 0
原创粉丝点击