这一周简略地看了一遍《代码大全》第一部分。
第一部分基础篇主要讲了开发软件前的构建工作及其重要性。
• 一些一般的构建过程
1. 定义问题
2. 需求分析
3. 规划构建
4. 软件架构
5. 详细设计
6. 编码与调试
7. 单元测试
8. 集成测试
9. 集成
10. 系统调试
11. 保障维护
在这里可以看到,软件开发并不只是编写代码,构建活动才是软件开发中的核心活动。而且在构建之前,往往还要进行谨慎的需求分析和架构设计。
有一章题为《问题定义的先决条件》,“问题定义”定义的是问题,而不是解决方案,它应该是一个很简单的陈述,应该从用户的角度来描述。比如“我们跟不上Gigatron的订单了”这样的句子就是一个好的问题定义。而“我们需要优化数据自动采集系统,使之跟上Gigatron的订单”这就是很糟糕的问题定义。
问题定义的下一步是需求分析,明确的需求为架构到设计到编码到测试的一系列工作提供的有序的、可预测的保障,并且要合适地处理需求变更。
书中还讲了常见的软件隐喻,提到了《人月神话》中,Brooks说:“要计划抛弃一个,你必定会那样,无论如何。”文字写作这一隐喻暗示着软件开发过程是一种代价昂贵的试错,我们应该在作第一次尝试或者成本最低的时候多试几次,让它成功。对于软件的构建,书中提到了几种隐喻,最为准确的是“建造软件”的说法。开发软件的过程可以比作建一栋房子,一步步设计的过程非常关键,糟糕的设计所引发的后果也更严重。
网友评论