无我

让内心永远燃烧着伟大的光明的精神之火!
灵活的思考,严谨的实现
豪迈的气魄、顽强的意志和周全的思考

编程的精义——从愚公移山开始

      《大道至简》在开头第一章“编程的精义”用一个妇孺皆知的故事——愚公移山来阐明编程的精义,实在令人觉得有趣万分,令人拍案叫绝。
      

原文      仅仅就编程序来说,实在是一件很简单的事,甚至可以说是一件劳力活。两千年前的寓言中,已经成就了一位工程名家:愚公。在这位名家的身上,浓缩了项目组织者、团队经理、编程人员、技术分析师等众多角色的优秀素质。他的出现,远远早于计算机发展的历史,甚至早于一些西方国家的文明史。 
      汤问篇中所述的愚公移山这一事件,我们看到了原始需求的产生:“惩山北之塞,出入之迂” 。我们也看到了项目沟通的基本方式: “聚室而谋曰” 。然后,我们看到愚公确定了一个项目的目标: “毕力平险,指通豫南,达于汉阴” 。并通过研讨,择定了一个井然有序的、可以实现的 技术方案: “扣石垦壤,箕畚运于渤海之尾” 。在这个项目中,动用了三名技术人员和一名工程管理人员: “(愚公)率子孙荷担者三夫” ,并获得了一名力量较弱,但满富工作激情的外协: “邻人京城氏之孀妻,有遗男,始龀,跳往助之” 。基本上,这已经描述了“愚公移山”整个工程的概况。
       接下来,我们应该注意到愚公作为编程人员的基 本素质。在与“河曲智叟”的对答中,他叙述了整个工程的实现程序: “虽我之死,有子存焉”,这里描述了可能存在的 分支结构,即“IF”条件判断。 “子又生孙,孙又生子;……子子孙孙,无穷匮也”, 这里描述了完成这个工程所必须的循环结构。
      作为优秀的程序分析师,愚公论述了这个循环的可行性:由于“山不加增”,所以条件“山平”必将成立 ( “何苦而不平”) ,所以这不会是一个死循环。
      在愚公的论述中,我们看到了编程的根本:顺序、 分支和循环。庞大若“愚公移山”这样的工程,都是可以通过这样简单的编程来实现的。      
     
 
原文

      第一个完成关于编程本质的思考的人,提出了一个公式“程序 =  算法 +  结构”。这个公式的精彩之处,在于它没有任何的地方提及到 Code。甚至可以说,在这个公式里,代码是不存在的。
      存在的只是思想。  

      算法是对一个程序的逻辑实现的描述,而结构是逻辑实现所依附的数据实体。只要开发人员将这个程序的算法设计出来了,把结构描述出来了,那么程序就已经定型了。剩下的事,简而言之,就是劳力活。
     
      所以,编程实在是很容易,只是用某种语法表达的一堆由顺序、分支和循环组成的集合罢了,愚公都能做,所以我们当然可以更加信心百倍的开始!
      不过,程序真正的灵魂是算法,而这是思想层面的东西,智叟也不一定能做好,所以我们还是需要努力学习的!

         这,就是编程的精义了!

 

posted on 2007-03-29 23:41 Tim 阅读(389) 评论(0)  编辑 收藏 引用 所属分类: 品读《大道至简》


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

公告

本博客原创文章,欢迎转载和交流。不过请注明以下信息:
作者:TimWu
邮箱:timfly@yeah.net
来源:www.cppblog.com/Tim
感谢您对我的支持!

留言簿(9)

随笔分类(173)

IT

Life

搜索

积分与排名

最新随笔

最新评论

阅读排行榜