构建之法第一、二、十六章 精读疑问
第一章:
佛瑞德·布鲁克斯提到,软件开发具有四个特性。
他认为,软件具有复杂性。软件可以说是人类创造的最复杂的系统类型。大型软件(操作系统、办公软件、搜索引擎)有超过百万行的源代码,上万个不同的文件。
而软件工程师的肉眼通常一次只能看到30-80行源代码(相当于显示器的一屏),他们的智力、记忆力和常人差不多,在过去的几十年中并没有大的提高。
软件的各个模块之间有各种显性或隐性的依赖关系,随着系统的成长和模块的增多,这些关系的数量往往以几何级数的速度增长。而理解运用这些复杂性的人并没有太大的变化。
我没什么疑问,只是有点想法:我认为,尽管大型软件等等,它们源代码再多,也是被封装好了,开放API或者使用协议来作为规范。随着时间推移,行业发展,必然各方面越来越规范。新的软件系统也必然更兼容,与各个模块协同进步,架构等更符合逻辑,便于理解和维护。对于人来说,也许并不需要过于耗费精力时间去理解和分析所有,只需要考虑一些核心功能和问题的解决。