懒人创造的方法 ——《大道至简》第二章读后感
《大道至简》第一章中提到愚公是一位有名的工程名家,他率领他的团队通过“叩石垦壤,箕畚运于渤海之尾”达到“毕力平险,指通豫南,达于汉阴”的目的。在这里,不得不说,愚公是一个十分勤奋的人。而在战国时期,一个叫李冰的人,他也凿了一座山,不过是通过“积薪烧之”的方。比之愚公,李冰的方法先进了许多。那么,李冰为什么能想到“积薪烧之”的方法,而不是像愚公那样每天督促他的团队凿石开山呢?当然是因为李冰更善于思考和观察并且更有创造力。李冰不像愚公那么勤奋,不然在这么大一个工程里,他怎么有时间去观察妻子做饭,知道烧热的石头用水泼了之后可以很快地裂开呢?用“积薪烧之”大大加快工程的进度,比起愚公移山的时代,不知先进了多少倍。正是李冰这样一个懒人出乎意料地创造了“烧石头”这样革命性的方法。尽管愚公很勤快,但是人的精力毕竟是有限的,勤快并不能让人找出更快的方法。就像我们在学习生活中经常会发现身边会有一些总是勤奋刻苦学习的人,成绩并不是最好,但是也有一部分人看起来总是优哉游哉,似乎不怎么学习,但总是能在考试中拿到骄人的成绩。这些学习中的“懒人”其实更善于创造革命性的方法,达到事半功倍的效果。并不是说勤奋不好,可是一昧只懂得勤奋,恐怕我们都要停留在愚公移山那个只考虑力气和勤奋程度的时代了。
面向对象的程序设计就是编程世界的革命性的创造。在编程的早期时代,将代码打在穿孔纸带上,让计算机去读。这样的纸带必然是连续的,这就代表无论这个程序多大,只要一个工程师开始写了,别人如果要接手他的工作,必然要先读懂他前面的程序,理解他对整个程序的设计思路,才能接着写下去。我们经常说,一千个读者就有一千个哈姆雷特,每个人设计程序的思路都不一样,我们要想接手别人写的程序,很多时候就跟把别人写到一半的作文接着往下写一样困难,我没有做过这样的事情,但是其中的艰辛也是可想而知的。能做到的人想必也是寥寥无几。而在这个时候,就出现了面向对象的程序设计。与面向过程的程序设计不同在于,看事物的角度不一样,而角度改变观念。从认识问题的角度来看,面向过程是死物受规则被动操控;而面向对象则是活物主动交互。简单来说,就是一句话肯定有主语和谓语,主语是“谁”,谓语是“做什么”。面向过程侧重于谓语,面向对象侧重主语,而谓语依赖于主语。出现了面向对象的程序设计之后,我们发现我们可以把十分庞大的程序划分成一个个模块,交给不同的人去实现,至于每个人之间要怎么实现这个模块,并不受其他模块的影响,只要每个人把他自己的模块做好就可以了。最后将这些模块整合起来,就是我们想要的程序。如此一来,就大大减轻了程序员的负担,也加大了开发效率。在实际的开发中,更多的是同时用到了两者,以面向对象为主,面向过程为辅。就像尽管“烧石头”方法的出现大大减轻了工程负担,但是我们也需要找到大量的柴火才能烧一座山的石头,所以也需要愚公移山的勤奋。