Code Complete总结(二)
第七章 高级结构设计
- 1.设计的层次
- 划分成子系统:数据库接口、用户接口、命令解释程序、报告格式程序。
- 划分成模块:
- 划分成子程序
- 子程序内部的设计
- 2.结构化设计
- 自顶向下分解(逐步求精):分解大问题为小问题。
- 自底向上合成:早起可以识别出有用的功能子程序。
- 两种设计方法不互相矛盾,在设计中可以结合使用。
- 3.往返设计
- 设计师一个复杂的过程,在这个过程中需要不断发现问题,更改设计。
- 在从事高层次问题时获得的总体印象将会对你在低层次细节中的工作
- 同时,在从事低层次问题时所获得的细节将为你对高层次的总体理解和作出总体
设计决定奠定下良好的基础。
- 4.高质量设计的特点:
- 智力上的可管理性:
- 低复杂性:实际是智力上的可管理性的一点。
- 维护的方便性:
- 最小的联系性:
- 可扩充性:
- 可重复使用性:
- 高扇入:尽可能多的被子程序调用。
- 低或中等程度扇出:尽可能少低调用其他子程序。
- 可移植性:
- 简练性:
- 成层设计:尽量分解层次。
- 标准化技术:大家都熟悉的才是好的
第八章 生成数据
- 1.自建数据的原因:将不确定的数据用变量保存,避免代码中有许多实现细节并容易修改。
- 2.自建数据类型时,要注意不要和关键字相同且不要重复定义。
- 3.初始化:
- 在使用变量的位置附近对其进行初始化(在程序随处可以用到的放一起)。
- 注意累加器和计数器再次用时清零。
第九章 数据名称
- 1.选择名称:通俗易懂、不引起误会,短的适用作用域小的变量,一致性。
- 2.特定数据类型命名:循环体长度较长用长的变量名,尽量不写太多的临时变量,使用肯定的逻辑变量名。
- 3.与语言无关的预定准则:
- 标识全局变量:g_xxxx
- 标识模块变量:m_xxxx
- 标识类型定义:x_Color、x_Menu
- 标识输入参数:IPXXX
第十章 变量
- 1.作用域:尽可能小
- 2.赋值时间:最晚赋值灵活越好
- 3.变量功能单一性
- 4.全局变量
- 问题:
- 对全局数据的疏忽改变(某处该了别处不知道)
- 不利于模块化,损害模块性和可管理性
- 重入问题:需要保持文件被拷贝在多处时仍能保持一致。
- 优化:
- 定义可识别的全局变量命名
- 使用加锁控制全局变量的存取
- 用存取子程序来代替全局数据