首页 > 代码库 > 《大道至简》第二章读后感

《大道至简》第二章读后感

大道至简第二章读后感

    ①《华阳国志》中写道:僰道有蜀王兵蘭,亦有神作大滩江中。其崖崭峻不可破,(冰)乃积薪烧之。从中可以看出,李冰凿山的方法是“积薪烧之”。这让我们想起战国时期另一个人——愚公,同样是移山,愚公选择了“碎石击壤”,最笨重最费体力的方法。而李冰不像愚公一样蛮干,他通过学习、寻找和观察,发现了“烧”这种可以加快工程进度的方法,使得一座大山短时间就碎掉了。勤快的愚公没有机会找到更快的方法。人的精力终究是有限的,提出新的方法解决的将是影响成效的根本问题。写程序也是一样,没有目的的一行行打代码是费力且鸡肋的,倘若你花时间去思考,找出最佳的算法,这个程序就变得简单了。

②短而简单的程序写在一个文件中就可以了,形成习惯以后,大家都把代码写到一个文件里,这样查找一个函数要在编辑器中按五千次上下翻页键,于是懒人创造出了懒方法,即单元文件。有了单元文件,也很快出了一个新的概念:模块。把一个大模块分成小模块,再把小模块分成更细的小小模块,一个模块对应一个单元,于是各个单元的代码可以由几个人分别写了。让源代码分散开来,结构化编程的时代开始了。

我们既然知道如何将书分类、归整地整整齐齐放在书桌上,那怎么就没想过如何把所学的知识分类一下,归纳一下,整整齐齐地放在脑子里呢?如果一个人学了一年的编程,他还是脑子晕乎乎的,不知道如何做程序,那想来只有一个原因:他学了,也把知识学进去了,就是不知道这些知识是干什么的。或者说,他不知道各种知识都可以用来做什么。其实结构化编程的基本单位是“过程”,而不是“单元”。要知道,CISC指令集与RISC指令集之争中,动摇CISC指令集地位的方法,就是分类统计。如同桌子上的书一样,我们尝试着把学过的知识分一下类,可以更加清晰明了地理解程序的各种实现方法。如果这样的话,我们的进步会很快,也能更好地研究软件产品。

作者对程序的理解是“程序=数据+算法+方法”。实际上面向过程开发也是有相关方法的,而在面向过程时代,只需要有“单元”和“模块”的概念,一样可以做出任意大型程序。在那个时代,方法并不显著,但面向对象的出现使得方法成了做程序过程中极其重要的一环。因为“过程”和“单元”,“工程”出现了。

    ⑤我们在写程序的时候,肯花时间去思考,找出最佳的算法,这个程序就变得简单了。另外,尝试着把学过的知识分一下类,可以更加清晰明了地理解程序的各种实现方法,有助于我们的学习。

 

《大道至简》第二章读后感