大道至简第二章

                                                                             第二章——是懒人造就了方法

  上次学了第一章编程的精义,从愚公移山到算法到工程,要我们持之以恒,不能松懈。这次学习了第二章懒人造就了方法,我们明白了不能一昧的埋头苦干,

不讲究方法和效率,我们应该找到方法来节省我们的时间和精力。

  战国时期的李冰凿了一座山。 史记中说是“蜀守冰凿离堆”,是说李冰在成都的时 候凿出了离堆也就是都江堰,他当时用的方法是“(因)其崖崭峻不可破,(冰)

乃积 薪烧之”。把石头烧了再敲可以节省好多时间和精力,李冰和愚公同为战国时期的人,愚公只是干用斧头榔头敲,凭借自己的子孙来完成移山任务,而李冰

用火先烧之,再用工具敲之,在有生之年就完成了任务,可见好方法是多么的有效率。李冰为啥能找到方法而愚公却没有呢?原因就在李冰是个官,手下有成百

上千人,这些人可是要吃喝拉撒的,这对他这个官来说可是一笔不小的开销,所以他就得赶紧找到方法。

  早期写程序,都是将代码打在穿孔纸带上,让计算机 去读的。要让计算机读的纸带当然是连续的,真实的苦楚可想而知,后来有了汇编语言,可以写一些代码了。

这时的代码 是写在文本文件里,然后交给一个编译器去编译,再由一 个链接器去链接,这样就出来了程序。64k 的文件是什么概念呢? 1 行代码大概(平均)是 3

0字节,64k 的源代码是 2184 行,如果代码风格好一点,再多一些空行的话,差不多也 就是 3000 行上下。程序员把三千行代码写到一个文件夹里是司空见惯的

事。但是把一百万行代码写到一个文件里查找一个函数要在编 辑器里按五千次 PageDown/PageUp 键的勤快人来说,是 不能指望他们创造出“单元文件(Unit)”这

样的开发方法来的,有勤奋的人自然就有懒人,有了懒人模块就出来了,把一个大模块分成小模块,再把小模块分成更细的小小模 块,一个模块对应于一个单元,

这样我们就可以分工了。大大节省了人的精力和时间。

  桌上的书是乱的吗?这个问题回来起来很简单,整齐或者乱。既然知道如何把书分类、归整 得整整齐齐地放在书桌,那怎么没想过如何把所学的知道 分类一下,归

纳一下,整整齐齐地放在脑子里呢?所以我们学的知识也要好好地分分类,归纳一下放在脑子里。时不时的回顾一下。这样编程应该不是一件太难的事。我的第一次思

考=程序+算法+结构。绝对可以用面对过程的方法来解决任何复杂的问题。但是为了使一切程序变得简单,面对对象的编程方法就应运而生了。面向过程的开发其实是

对结构化程序设计。即使没有任何“方法”的存在, 只需要有了“单元(Unit)”和“模块(Module)”的概念, 在面向过程时代,一样可以做出任意大型的程序。在那个 时代,

方法”问题并不会象鼻子一样凸显在每一个程序员的面前。面向过程的开发其实并不需要方法,和愚公似开发程序也是可以的,只不过就是要花费很多的时间或许百年或许

千年。而与“面向对象”是否出现完全无关的一个东西,却 因为“过程”和“单元”的出现而出现了。这就是“工程 (engineering)”

  是懒人早就了方法,但是懒只是说身体懒,但是脑子不能懒,想偷懒就得找到好的方法,节省精力和时间的方法。编程这个东西还是得得多学,多看,多敲。要自己动脑

子,别一昧的愚。贼愚得那种。没本事还懒。人还是得勤奋,勤奋的那种“懒”。

 

posted @ 2016-09-25 20:21  贼帅的火柴人  阅读(105)  评论(0编辑  收藏  举报