【值得反复读3遍的书】程序员的百科全书——《代码大全》读书笔记

【值得反复读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 本书的意义

  1. 弥补初级编程和高级编程之间的鸿沟
  2. 教授软件开发技术,构建高质量的代码
  3. 提高软件质量和开发者的生产力
  4. 列出开发工作中常见问题的应对解决方法

3 本书讲什么

  1. 书的英文名《Code Complete》,意味代码完成,即将进入系统测试阶段;
  2. 翻译为《代码大全》有两层意思,其一是讲解的知识较为全面,其二是“大”作为副词来形容“全”的,意为完美地完成编程;
  3. 构建程序的重点落实到“编程和调试”单元上,但不仅仅是这一个单元,构建活动所包含的内容有更加丰富的内容,如下图所示;
    【值得反复读3遍的书】程序员的百科全书——《代码大全》读书笔记
    【值得反复读3遍的书】程序员的百科全书——《代码大全》读书笔记
    在软件开发中需要注意的点:
    1. 问题定义要清晰
    2. 需求是对问题定义的进一步深入分析
    3. 开始构建前的环节占开发过程周期的或
    4. 越早地发现问题,越能够降低返工成本

    6.1 需求分析

    6.1.1 需求分析前的准备动作

    中心目标:降低风险,最常见的项目风险是糟糕的需求分析和项目计划

    6.1.2 防御需求变更的方法

    1. 成本和进度
    2. 成立需求变更委员会
    3. 使用演进原型的开发方式对待变更的需求
    4. 放弃项目
    5. 注意项目的商业价值

    6.1.3 评价需求

    核对表

    6.2 架构

    架构描述如何解决问题,给出解决方案。

    6.2.1 组成部分

    架构需要考虑的组成部分有以下个视图,可谓多维度多层次多角度来看软件开发的上层建筑——。而我们需要掌握的是每个部分的职责。

    1. 程序组织
      设计构造块,明确各个构造块的责任,明确各个构造块的通信规则。构造块对应需求分析列表中的没一个功能特性。

    11对应 组成 组成 需求分析列表中的一个特性 构造块 一个类 多个类

    1. 主要的类
      描述主要的责任类,说明每个责任类的功能,以及该类如何与其他类进行交互。应该包含继承体系、状态转换、对象持久化等。
    2. 数据设计
      描述所用到的文件及数据库表。详细定义数据库的高层组织结构和内容。
    3. 业务规则
    4. 用户界面
      用户界面的设计一般地是在需求分析阶段进行描述,如果分析中未包含,架构阶段进行界面格式的详细说明。
    5. 资源管理
    6. 安全性
      建立威胁模型。
    7. 性能
      定义、、三者之间的优先级。
    8. 可伸缩性
      用户数量、服务器数量、网络节点数量、数据库记录数、数据库记录长度。
    9. 互用性
      对接第三方系统。
    10. 国际化/本地化
      系统需要进行国际或本土化的部分有,提示、状态显示、帮助信息、错误信息等。
    11. 输入输出
      检测I/O错误的层次:字段、记录、流或者文件。
    12. 错误处理
      的代码用来出来异常、错误和簿记工作。说明一种“一致的错误处理”策略,对错误消息进行约定。
    13. 容错性
      能从错误中恢复,
    14. 架构的可行性
    15. 过渡工程
      设计冗余进行裕度处理

    6.2.2 架构决策

    1. 造不如买,如果造,说出造的理由
    2. 复用软件,考虑整合的代价
    3. 让架构足够灵活来应对外部因素变更,在数据文件中放入版本号、保留将来可使用的字段、文件设计成可增加行数据

    6.2.3 如何评价架构

    核对表

    6.3 构建

    6.3.1 设计

    6.3.1.1 设计的特征

    设计是构建活动中一个重要环节,具有以下特征:

    1. 了无章法
    2. 险恶
    3. 确定取舍、调整顺序
    4. 有资源限制
    5. 启发式过程
    6. 自然而然

    6.3.1.2 管理复杂度

    软件越来越复杂,需要拆解成一个个子系统。保持程序的短小和精悍。

    6.3.1.3 理想的设计特征

    1. 最小的复杂度
    2. 易于维护
    3. 低耦合,高内聚
    4. 可扩展性
    5. 可重用性
    6. 高扇入
    7. 低扇出(<= 7):表示代码单元的复杂度
    8. 可移植性
    9. 层次性
    10. 使用标准技术

    6.3.1.4 层次

    【值得反复读3遍的书】程序员的百科全书——《代码大全》读书笔记 微信名片 【值得反复读3遍的书】程序员的百科全书——《代码大全》读书笔记

    来源:追寻上飞

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月2日
下一篇 2022年5月2日

相关推荐