相信大家都思考过这些问题,斯坦福大学的JOHN OUSTERHOUT教授给出了一个他的答案,复杂度是软件系统中很重要的一个因素,在开发过程中,复杂度会不断变高,如果不能进行有效控制,就会呈现指数性增长,导致开发效率越来越低,难度增大,同时bug越来越容易出现。
首先,我们来定义一下什么是软件系统的复杂度,所谓复杂度是指针对软件系统进行维护和拓展需要花费的成本大小。如果进行一个小的修改,需要耗费很大的成本,说明这个系统的复杂度高。如果只需要不大的成本就能完成新功能的开发或现有功能的完善,则说明这个系统的复杂度是可控的,比较低的。
接下来,我们讲一下复杂度在系统会有哪些表现:

大家可以看一下自己的项目,难以维护的项目是不是复杂度都很高呢?既然导致系统难以维护的原因找到了,那怎么能有效控制系统的复杂度呢?在接下来的几篇专栏中会进行详细介绍,感兴趣的朋友们加个关注。
参考文献
www.amazon.com/Philosophy-Software-Design-John-Ousterhout/dp/1732102201