大道至简第二章—懒人的方法
僰道有故蜀王兵阑亦有神,作大滩江中。其崖崭峻,不可凿;乃积薪烧之。故其处悬崖有赤白五色。
----华阳国志卷三-蜀志
在第一章中作者引用愚公移山的典故向我们介绍了编程的精义,以愚公为例向我们介绍了个编程人员应具备的素质。而在第二章,作者通过蜀郡太守李冰烧石破山建造都江堰的故事告诉我们我们只是勤奋是不够的。如果李冰像愚公那样日复一日的敲石碎山,就不会有空闲时间去观察,去思考了。那也不会有“积薪烧之”的事情了。所以李冰乃是闲人一枚。
人的精力是有限的。愚公而愚公可以多吃点饭,多加点班,但突破不了人的精力的极限。同样编程也是这样,代码只是一个劳力活儿,这个工作每个编程员都可以做,而有一些人他厌烦了,不想按部就班的去做,于是他会去想一些捷径,通过自己动脑子去想,从而走出一条不同于常人的快捷方法。编程最开始的时候是是把几千行代码写在一个文件里,试想一下,在这个文件中查询一个函数就需要敲几千次翻页键;如果是一个团队的话,一个项目的实现是需要一个团队的协作的。试想一下,一个一百万行代码的程序如果是让一个团队来写,每人写一段,那么第一个写的人还好,可是最后一个写的人就要命了。他需要将前面每个人写的代码都看一遍,都读懂,并且能跟得上他们的思路,还要能抽出这个程序的骨架,这几乎是不可能的。这是多么繁琐。
所以有懒人想到了把它分开写,逐渐的人们从一个文件几千行代码的定式中走了出来。而后有了单元文件,模块的概念。人们开始把一个大模块分成小模块,在将小的分成更小的。一个模块对应一个单元,然后分开工作。那么一个一百万行代码的程序是让一个团队来写,每个人负责若干部分,而且在主函数里往往都写得比较简单,一些对数据的处理就变成了对函数或者类的调用,增加了程序的层次性、可读性、简便性。最后再将这些整合起来形成一个完整的程序。这再一次向我们证明了确实是懒人创造了方法。
这里所说的懒人并非是懒惰,而是说那些不闷着头去做而是多去想,多去思考的那类人。我们在生活学习中也是如此,如同我们课桌上的书只要我们用心就能排整齐思考也是这样。