《大道至简》第二章阅读笔记

古书中有记载,战国时期的李冰凿了一座山,史书中记载的他所使用的方法是:“其崖崭峻不可破,乃积薪烧之”,说到这里便想起了同处于战国时代的愚公却需要“叩石垦壤”。假设李冰也像愚公一样,日复一日的凿山,根本没有时间去思考、寻找、观察凿山的好办法,不会发现这种更为便捷的方法。还有一个方面就是李冰的团队有成百上千人,如果李冰忙起来那一定是“受命以来,夙夜忧叹”,哪有别的时间去考虑有没有什么新办法。由此看来,李冰定是一个闲人,可以有时间去看火能不能烧爆石头,而通过这件事也说明李冰是一个懒人,有千千万万的事要做却不做,来观察火能不能烧爆石头。而也不得不说李冰创造了方法。一个简单易行的方法,由此可以看出正是懒人创造了方法。

  早期编写程序,都是将代码打到穿孔纸上,然后再让计算机读,我们也没经历过这个时期,但总觉得想想这件事就很麻烦。后来又有了汇编语言,但是所有的代码都要写到一个文件里,然后一个编译器编译,一个链接器链接,后来出了高级语言因为之前养成的习惯,所以导致现在人们还是喜欢把所有的代码写到一个文件里面,直到现在语言越来越高级,但是大部分人仍然喜欢将所有代码写到一个文件,不管代码多大。但是Delphi 1.0发布时却出现了一个大BUG!它的编译器不支持超过64k的源代码文件,因此收到好多粉丝的骂声,因为仅仅64k的文件只能写下2184行代码,如果格式好也仅仅能写下3000行,而这远远满足不了大家把大量代码写到一个文件里的要求。而这种勤快人的方法在查找一个函数时,需要在编译器中按5000PageDown/PageUp,而世界上还存在一种懒人,他们懒得去按无数次的键来查找一个函数,所以他们创作了单元文件,将大模块分成小模块,小模块分成小单元,然后分工合作。将源代码分散开来,于是结构化编程的时代开始了。

  其实脑子里的知识也就像是桌子上的书,桌子上的书你通常会进行分类,将具有相同作用的书放到一起,而脑子里的知识呢?也应该进行分类,你只是学习到了这些知识,却没有真正明白这些知识到底是用来做什么的,你不知道该怎么用所以你也不会分类。或许将你脑子里的知识分分类,整理整齐,到时候你的编程思路就会来了,而那些不能解决的问题也有了对应的解决办法。

  程序=算法+结构+方法,我们大概不会忽略算法加结构而往往会忽略方法,认为有了单元和模块程序就会理所当然的写出来,现在看来并不是这样,因为当你写完所有模块是“方法问题”就会凸显在你的面前,你不能不去考虑他,面向过程开发中,“过程”由CPU提供,“单元”由编译器提供,程序员不需要方法就可以进行“愚公式”的开采,这样的工程可能还需要一百年,与面向对象出现是否无关却因过程和单元的出现而出现,这就叫做“工程”。

  看以往的经历,不得不说是懒人造就了方法,不能说“愚公”式的方法不好,但是懒人创造的方法似乎更有效率,所以我们在做一件事例如编程序时不应该盲目地忙于敲代码,或许应该闲下来先想一想思路和解决问题的办法。

posted @ 2016-09-25 16:44  韩晓凡  阅读(117)  评论(0编辑  收藏  举报