代码大全2开始看了

这几天在单位抽空看了代码大全2的几个章节,现在做下笔记。

Code complete 2 (代码大全2)

 

3.3问题定义在具体的需求分析工作之前,而需求分析是对所定义的问题的深入调查。问题定义是定义了【问题是什么】不涉及解决方案,只是两页纸的陈述。

3.4描述软件系统应该做什么,达成解决方案的第一步。

编码之前客户无法可靠的描述他们想要的是什么, 并不是说他们是低级动物,只是因为他们太熟悉这一项目而无法系统的概括出来。

确保每个人都知道需求变更的代价(进度,成本)

 

3.5架构

 

5.1设计把需求分析和编码调试连接在一起的活动。

 

5.2 关键的设计概念,管理复杂度:作为开发人员,我们不应该试着在同一时间把整个程序都塞进自己的大脑,而应该试着以某种方式去组织程序,以便能够在一个时刻可以专注于一个特定的部分。范围分解。避免用复杂方法解决简单问题

 

5.3层次设计,1软件系统;2分解为子系统;3分解子系统的类;4分解类里面的方法和数据;5方法和数据设计;

一致的抽象,关注某一概念而忽略其中一些细节。

封装实现细节,不只是让你能用简化的视图来看复杂的概念,同时还不能让你看到复杂概念的任何细节。

信息隐藏;实现尽量不暴露在外面。养成“我该隐藏些什么?”的习惯。

分离出来容易改变的区域

松散的耦合;

查询常用的设计模式,通过现成的抽象来减少复杂度,提供多种设计方案带来启发性的价值。

启发式原则:1,理解问题(未知量是什么?现有数据是什么?条件是什么?能满足这些条件么?现有能决定出未知量么?)2,制定计划(找出现有数据与未知量的联系,没有就考虑辅助的未知量,有没有相似的解决方案,如果还解决不了,试着解决这个问题的一部分,将部分条件去掉,将未知量进行拆分分析。)3,执行计划4,回顾整个的解。

 

5.4 设计实践

 

 

6类

6.1 ADT 抽象数据类型

6.2 良好的封装

何时使用继承,何时使用包含

Has a 包含;

Is a 继承;

如果多个类共享数据而非行为,应该创建这些类可以包含的公用对象

如果多个类共享行为而非数据,应该让他们从共同的基类继承而来,并在基类里定义公用的子程序;

如果多个类既共享数据也共享行为,应该让他们从一个共同的基类继承而来,并在基类里定义公用的数据和子程序;

当你想由基类控制接口时,使用继承;当你想自己控制接口时,使用包含。

 

 

7高质量的子程序(方法)

什么时候创建方法?如果你要使代码充满下述目的的话:为了降低复杂度,通过方法的封装来隐藏一定的信息,缩小代码规模,改善可维护性,避免代码重复,增强可读性(GetLeafName(node)而不是 “一坨”无所谓的循环语句),支持子类化(override方法),方便进行单元测试等等。

子程序一个方法尽量控制在大约为50~100之内。

子程序开发的注意:内部功能上要高内聚,子程序外部关系要松耦合,子程序的命名要按照功能逻辑确定,传入的参数少于7个,输入参数不能用作工作变量。

 

posted @ 2012-07-11 21:27  Jason_Z  阅读(621)  评论(0)    收藏  举报