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