了解问题
1. 弄清要做什么
比如有什么输入,对输入的内容做什么处理,要输出什么,以及输出哪种格式。
输入可能来自键盘,也可能来自磁盘。
对于较复杂的程序,需要多了解程序的各个方面。
2. 详细设计
要建房子,必须有详细的计划,然后工人按照计划施工。比如房子尺寸、材料等等。
还需要知道何时完成什么工,比如先挖地基,后砌墙。
写程序也一样,首先将程序分解成许多定义清晰且互相独立的小单元,然后这些单元之间有相互沟通的方式,以及每个单元在执行时需要什么信息。
3. 实施
有了房子的详细设计,就可以开始工作了,每组建筑工人按照进度完成他们的工作。在下一阶段开始前,必须先检查每个阶段是否正确完成。
假使程序很大,可以一次编写一部分,下一部分完成后,再写下一部分。
大型编程项目常常涉及一组程序员。项目分成相当独立的单元,分配给程序员组的各个成员。
4. 测试
房子完成,还要进行许多测试:排水设备、水电设施、暖气等。任何部分都可能出问题。这些问题必须解决。这有时候是一个反复的过程,一个地方的问题可能会造成其它地方出问题。
写程序类似,每个程序模块——组成程序的单元——都需要单独测试。如果工作不正确,就必须调试。
调试是一个找出程序的问题和跟进错误的过程。
bug 的单词本意是虫子,以前最早的电脑出问题了,后来发现原来是一只虫子导致的。