在传统机械工业中,我们要从一个很远的地方引进一套流水线。
大家都知道,一般情况下,安放一套流水线,必须要一个大房子(甚至非常大的房子),可见之大。
其它问题我们不去考虑,我们只想一下,怎么把它运回来?
我们得庆幸,幸亏当时造这套流水线的人没有把造一整块铁(想像一下,一整块铁疙瘩,要你把它运回来,肯定晕死你)。
如果它是一整块铁,一般情况下没有运走的可能性。你就是把全世界力气最大的运输工具叫来,也无济于事,它真是太大了,太重了!
正好相反,一套流水线设备几乎可以彻底拆成很小的部件的,几乎绝大多数部件都能比较容易的运走,更有很多部件,我们可以找根绳子捆成一捆运走,或塞到缝隙里一块儿运走。
我再重复一下刚才那个笑话:“我们很有钱,不就一套流水线设备嘛,小case啦。当我们把车开到广房门口时发现,原来它是一整块铁......”
:)
好!回到现实中!大家都是程序员(我也是),让我们看看自己写的程序,我们是不是把程序写成了“无法搬运的一整块铁”?
对于一个比较大的软件系统(也不一定非常大),你就是把全界最聪明的人叫来,也不可能只用一个main函数就完成。(理论上讲,再复杂的程序对机器来说,只用一个main函数就够了,包括多线程)
更何况我们都是平常人,不会超级聪明,对于“复杂”的理解、控制能力很有限(你同意吗?)。
我本人很笨,小时候家人都没让我考大学,稍微有几个函数对this->成员改来改去、判断来判断去、然后this以外再把它弄弄;或者在一个函数内,一个栈变量被“标记”来“标记”去,我就头大了,现在更是看了脑火---“报告领导,本人头脑简单,只会写出容易懂的程序,像这些高手写的程序我看不懂!”
:)
同志们,人对于杂复的控制能力是有限的,如果你把程序写得太复杂:
1. 还能再写更多吗?再多还不“逻辑爆炸”了
2. 可靠不可靠啊?那么杂复,就连你自己也晕晕的?
3. 日后要对其增加新功能,谁敢动啊,那么复杂,动了这里其它地方就是“莫明其妙”的出错
4. 想分离并重用模块,能行吗?那是“一整块铁”啊
5. 长期生活在这种国产的“焦油坑”里,您是不是渐渐觉得自己不适合当程序员了?
“软件工程要解决的首要问题是:控制复杂度。”哪儿看到的记不清了。
我们在写程序的时候应该多考虑考虑,不要随意的构思流程、写代码,否则今天你是爽了,明天呢?后来的人呢?
还是让我们把程序写得容易懂一些吧。
欢迎评论