复杂度的重要性
最后更新于:2022-04-02 04:16:28
[TOC]
## 概述
软件的首要技术任务,就是管理复杂度
很多年以前,Edsger Dijkstra已经就复杂度的危险提出警告:“有能力的程序员会充分地认识到自己的大脑容量是多么地有限;所以,他会非常谦卑地处理编程任务”(Dijkstra 1972)。
## 如何度量复杂度
最著名的可能就是 Tom McCabe的方法了。该方法通过计算子程序中“决策点( decision points)”的数量来衡量复杂度。
1. 从1开始,一直往下通过程序
2. 一旦遇到以下关键字,或者其同类的词,就加1: if、 while、 repeat、for、and、or
3. 给case语句中的每一种情况都加1
## 如果处理复杂度的度量结果
计算出决策点的数量以后,你就可以用得到的数值分析你写的子程序的复杂
度了:
1. 0-5 子程序可能还不错
2. 6-10 得想办法简化子程序了
3. 10+ 把子程序的某一部分拆分成另一个子程序并调用它
> 一条情况很多的case语句可能会包含超过10个的元素。如果硬拆开它可能就是很愚蠢的,这取决于该ase语句的用途。
';