zoukankan      html  css  js  c++  java
  • 大道至简第二章读后感

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

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

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

          作者对程序的理解是“程序=数据+算法+方法”。实际上面向过程开发也是有相关方法的,而在面向过程时代,只需要有“单元”和“模块”的概念,一样可以做出任意大型程序。在那个时代,方法并不显著,但面向对象的出现使得方法成了做程序过程中极其重要的一环。因为“过程”和“单元”,“工程”出现了。这就好比我们在写程序的时候,肯花时间去思考,找出最佳的算法,这个程序就变得简单了。另外,尝试着把学过的知识分一下类,可以更加清晰明了地理解程序的各种实现方法,有助于我们的学习。

  • 相关阅读:
    RSA算法
    本地CodeForces
    基于Giolite 多人开发
    DES算法
    MD5算法
    仓库库存管理系统(C+MySQL+ODBC)
    Spring源码解析(一)开篇
    JDK动态代理实现源码分析
    J.U.C Atomic(一)CAS原理
    JDK 注解详解
  • 原文地址:https://www.cnblogs.com/bai123/p/5906342.html
Copyright © 2011-2022 走看看