💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[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语句的用途。