(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
```
- (5)软件构建中的设计
- 软件构建中的设计
- 软件构建中的设计
- 软件构建中的设计
- 软件构建中的设计
- 软件构建中的设计
- 软件构建中的设计
- 【代码大全】第5章 软件构建中的设计
- 第五章 软件构建中的设计
- 第五章--软件构建中的设计
- 代码大全2-软件构建中的设计
- 代码大全2-软件构建中的设计
- 代码大全(五)-- 软件构建中的设计
- 代码大全 读书笔记(3)软件构建中的设计
- 《代码大全》学习笔记一:第五章 软件构建中的设计
- 《代码大全》学习笔记一:第五章 软件构建中的设计
- 《代码大全》学习摘要(五)软件构建中的设计(上)
- 《代码大全》学习摘要(五)软件构建中的设计(下)
- 用recylerView实现瀑布流的效果
- 文章标题
- poj 1321 新手初入简单搜素
- swift27个开元第三方库
- AndroidStudio——Gradle 插件用户指南(5)
- (5)软件构建中的设计
- TOEFL 学习笔记(writing 3)
- Quartz.NET 入门
- AndriodStudio——Gradle 插件用户指南(6)
- 对cell重新布局
- HTML5本地存储——IndexedDB(一:基本使用)
- Android组件系列----ContentProvider内容提供者
- Ubuntu远程连接MySQL, 10038问题
- python3.0学习七: 用代理访问网页