最近在 《代码大全》这本书, 包括的内容非常多, 从软件设计到代码开发,团队管理都有,更像是一个软件编程领域的百科全书.
但是,对于书中提到的一点印象最为深刻, 其实在 《人月神话》和《卓有成效的程序员》这两本书都有提到, 那就是:
软件设计与开发的核心就在于 控制复杂度
这句话的核心其实包括几个问题:
软件开发的本质问题性难题是 复杂度 ?
如何可以一定程序的降低复杂度 ?
杂耍抛球
其中, 书中对于软件设计必须控制复杂度的解释原因是:
没有谁的大脑能容得下一个现代计算机程序, 也就是说, 作为软件开发人员, 我们不应该试着在同一时间把整个程序都塞进自己的大脑, 而应该试着以某种方式去组织程序, 以便能在同一个时刻可以专注于一个地方. 这么做的目的是尽量减少同一时间所要考虑的程序量. 你可以把它想做是一种心理上的杂耍(边抛边接: 通过轮流抛接使两个或者两个以上的物体同时保持于空中)- 程序要求你在空中保持的(精神上的)球越多,你就越可能漏掉其中的某一个, 从而导致设计或者编码上的错误