zoukankan      html  css  js  c++  java
  • 方法和思维读大道至简第二章懒人造就了方法有感

          第二章的开头便引用了李冰凿山的故事,在战国时代,作为蜀守的李冰并不缺乏人手,但他在妻子偶尔一次的做饭中找到了可以更加省力的方法。既然可以“积薪而烧之”,为什么非要像愚公那样“碎石击壤”呢?这便是方法的问题。

          首先我们可以分析一下李冰选择“积薪而烧之”的原因吧。首先要建造一个工程需要大量的人力物力,而蜀地在这之前物产一直不是很富饶,另外对外交通不发达,粮食等生活必需品很难运进蜀地。李冰有着成百上千人的团队,他们要修筑堤坝,要“凿离堆”,还要吃喝拉撒睡,对于蜀地这样一个物质资源匮乏交通又极度不发达的地方来说,李冰必须选择一个省时省力的方法。另外,我们别忘了李冰现在的职位是蜀守,他要有政绩,有工期的限制,于是就不会出现像愚公一样,提出一个“子又生孙,孙有生子,子子孙孙,无穷尽也,而山不加增的方法”了,他要求的必定是简洁度和效率,及实施的可行性。

          李冰面对对方面的问题的挑战想出来了一个比较便捷省力的方法,这样的方法突破了人体精力的极限,使复杂的工程简单化。

          其实在编程中也会经常出现这样的问题。在早期的程序里,一百万行代码是可以写在一个文件里的,对于这样一个问题,一个勤快的人大概不会创造出“单元文件”这样的开发方法的。有了单元文件,也就出现了一个新的概念“模块”。把大模块分割成小模块,再把小模块分割成更为细小的模块,这样我们就可以开始分工协作了,让代码源分散开,开始了结构化编程时代。

          结构化编程的基本单位是“过程”,过程及其调用是CPU指令集所提供的执行逻辑,而不是普通开发人员在编程实践中所总结和创生的“方法”。

    现今大量的指令集,大量的知识,大量的资讯已经充斥着我们的思想,所以尝试一下分类,尝试一下换个角度的思考,也许你会得到意想不到的收获。

    书中还提到了作者的一段对话,向我们阐明了面向对象和面向过程的主要区别。面向对象是对“流程”、“结构”和“编程方法”的高度概括。而面对对象本身只解决了“结构”和“方法”的问题,并没有对“流程”加以改造。面向对象的思维不可能彻底,而且也只能用在总体分析上。在面向过程的时代程序=数据+算法,而在oo时代,程序=数据+算法+方法,因而方法现如今已经处于一个与数据和算法同等重要的位置了。所以便有了总体结构-->面向对象,关系-->数据结构,实现-->算法。

         在面向过程的时代,“过程”是CPU提供的,“单元”则是编译器提供,程序员不需要造就什么样的方法,就可以进行愚式的开发了,而这种开发我们都知道有什么样的弊端。所以“工程”因为“过程”和“单元”的出现而出现了,这不仅仅是方法上的进步,更是思维上的进步。

  • 相关阅读:
    HDU 4578
    Luogu 3373
    HDU 6343
    2018牛客网暑期ACM多校训练营(第五场) F
    2018牛客网暑期ACM多校训练营(第五场) E
    2018牛客网暑期ACM多校训练营(第四场) A
    POJ 3580
    HDU 1890
    ZOJ 4029
    2018牛客网暑期ACM多校训练营(第三场) H
  • 原文地址:https://www.cnblogs.com/qingqing2015/p/4837418.html
Copyright © 2011-2022 走看看