【值得反复读3遍的书】程序员的百科全书——《代码大全》读书笔记
- 1 建议读者
- 2 本书的意义
- 3 本书讲什么
- 4 本书的宗旨
- 5 本书的重点章节
- 6 软件开发
-
- 6.1 需求分析
-
- 6.1.1 需求分析前的准备动作
- 6.1.2 防御需求变更的方法
- 6.1.3 评价需求
- 6.2 架构
-
- 6.2.1 组成部分
- 6.2.2 架构决策
- 6.2.3 如何评价架构
- 6.3 构建
-
- 6.3.1 设计
-
- 6.3.1.1 设计的特征
- 6.3.1.2 管理复杂度
- 6.3.1.3 理想的设计特征
- 6.3.1.4 层次
- 6.3.2 构建
-
- 6.3.2.1 设计接口和类的方法
1 建议读者
任何想写出好程序的人,或者带领一群程序员写出好软件的人。
2 本书的意义
- 弥补初级编程和高级编程之间的鸿沟
- 教授软件开发技术,构建高质量的代码
- 提高软件质量和开发者的生产力
- 列出开发工作中常见问题的应对解决方法
3 本书讲什么
- 书的英文名《Code Complete》,意味代码完成,即将进入系统测试阶段;
- 翻译为《代码大全》有两层意思,其一是讲解的知识较为全面,其二是“大”作为副词来形容“全”的,意为完美地完成编程;
- 问题定义要清晰
- 需求是对问题定义的进一步深入分析
- 开始构建前的环节占开发过程周期的或
- 越早地发现问题,越能够降低返工成本
- 成本和进度
- 成立需求变更委员会
- 使用演进原型的开发方式对待变更的需求
- 放弃项目
- 注意项目的商业价值
- 程序组织
设计构造块,明确各个构造块的责任,明确各个构造块的通信规则。构造块对应需求分析列表中的没一个功能特性。 - 主要的类
描述主要的责任类,说明每个责任类的功能,以及该类如何与其他类进行交互。应该包含继承体系、状态转换、对象持久化等。 - 数据设计
描述所用到的文件及数据库表。详细定义数据库的高层组织结构和内容。 - 业务规则
- 用户界面
用户界面的设计一般地是在需求分析阶段进行描述,如果分析中未包含,架构阶段进行界面格式的详细说明。 - 资源管理
- 安全性
建立威胁模型。 - 性能
定义、、三者之间的优先级。 - 可伸缩性
用户数量、服务器数量、 络节点数量、数据库记录数、数据库记录长度。 - 互用性
对接第三方系统。 - 国际化/本地化
系统需要进行国际或本土化的部分有,提示、状态显示、帮助信息、错误信息等。 - 输入输出
检测I/O错误的层次:字段、记录、流或者文件。 - 错误处理
的代码用来出来异常、错误和簿记工作。说明一种“一致的错误处理”策略,对错误消息进行约定。 - 容错性
能从错误中恢复, - 架构的可行性
- 过渡工程
设计冗余进行裕度处理 - 造不如买,如果造,说出造的理由
- 复用软件,考虑整合的代价
- 让架构足够灵活来应对外部因素变更,在数据文件中放入版本 、保留将来可使用的字段、文件设计成可增加行数据
- 了无章法
- 险恶
- 确定取舍、调整顺序
- 有资源限制
- 启发式过程
- 自然而然
- 最小的复杂度
- 易于维护
- 低耦合,高内聚
- 可扩展性
- 可重用性
- 高扇入
- 低扇出(<= 7):表示代码单元的复杂度
- 可移植性
- 层次性
- 使用标准技术
6.1 需求分析
6.1.1 需求分析前的准备动作
中心目标:降低风险,最常见的项目风险是糟糕的需求分析和项目计划
6.1.2 防御需求变更的方法
6.1.3 评价需求
核对表
6.2 架构
架构描述如何解决问题,给出解决方案。
6.2.1 组成部分
架构需要考虑的组成部分有以下个视图,可谓多维度多层次多角度来看软件开发的上层建筑——。而我们需要掌握的是每个部分的职责。
6.2.2 架构决策
6.2.3 如何评价架构
核对表
6.3 构建
6.3.1 设计
6.3.1.1 设计的特征
设计是构建活动中一个重要环节,具有以下特征:
6.3.1.2 管理复杂度
软件越来越复杂,需要拆解成一个个子系统。保持程序的短小和精悍。
6.3.1.3 理想的设计特征
6.3.1.4 层次
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!