一、大道至简与愚公移山

=======

《大道至简》一书最初的领悟来自那张EHM图。这个故事我在书中已经讲过:在一次Delphi.NET培训的准备工作中,我顿悟“语言只是工具”,并由语言的工具本质为起点,透视了整个软件工程体系。这张图后来被补充为“软件工程层次模型(EHM)”。而从这张图起,我便有开始为我的这些想法写出一本书来,而书的名字就是《大道至简》。

我写书是从前言开始,在写《大道至简》的前言(第一版的“前言后语”)时,我并没有想到从哪里开始写整本书。也就是说,只有写书的想法,却没有整个框架。因此你在前言中看不到有关“愚公移山”的任何信息。开始写第一章的时候,久久不能下笔,也不知道从何论起。我找来一本成语词典,东翻翻西翻翻,一眼便瞅见了这个“愚公移山”,再一想:嗯,的确是个好题材。这才由此下笔,因而《大道至简》开篇便与众不同。

 

二、第一版中的愚公移山

=======

在第一版(电子版)中,愚公移山的故事只是用来总结“编程的精义”。尽管我称愚公为“工程名家”,但事实上第一版中所写的愚公“并不怎么会工程”,我对“愚公式的开发”、“积极的愚公”、“忽略成本的愚公”等都是持批判的态度的。唯一被肯定的是他的“聚室而谋曰”和“编程的(而非工程的)精义”。

我并没在更多的地方提到愚公,但这并不妨碍我想念这个人物。我在2005年4月完成了第一版的全文,7月我从郑州的那家软件公司职辞,驾车去西藏旅游。——说是驾车,其实不是我驾(我不会开车)。所以一路上便是听评书和想问题,这个过程中想得最多的便是这本书,以及书中提及到的工程问题。

思考的过程终于在我抵达珠峰大本营的那晚爆发了,爆发的原因则是一罐啤酒。我很自信地弄了一罐啤酒,准备在珠峰底下过过瘾,结果只能喝下一半。就这一半也很快发作了,当时便心脏受不了,晚饭也没吃便躺下睡去,而半夜又醒转来睡不着。这睡不着的光景里,愚公就开始移山了。——哈哈。整个愚公家族近三百年的移山工程,如同在我脑子里活着一样,一幕幕地演过去。

从西藏回程的时候,我一遍又一遍地回想这个故事,终于不会再忘却了。我想我已经找到了《大道至简》一书的另外一种述写方式:一篇文言的、寓言式的故事。

 

三、第二版的起因

=======

第一版实在太薄,大概只有120来页,而且还是一种小开版的。当时也是跟博文视点谈的出版事宜,直到2005年10月也没结果。而我在9月开始便受聘于上海盛大网络,任架构师,并随即展开了“数字家庭战略”中的软件平台的架构设计工作。我基本上不会再有时间纠缠在《大道至简》一书的出版,或者“愚公移山”故事的编写上。因此,我在10月以电子版的形式发布了该书的第一版,并约请蒋涛写了序。

第一版最终不能作为印刷品出版,这很令我沮丧。但心里仍有些不甘,当时给蒋涛说:如果博文视点有计划要出版这本书,我还是把优先权留给他的。

电子版引起了广泛的关注,也有一些无关痛痒的争议。这些现象引起了邮电和清华两家出版社的注意,他们先后送出了合作的意向,想要出版这本书。清华出版社的朋友甚至为这本书拟了一个丛书,但也因为计划做成丛书的缘故,空耗了许久的时间,以至于后来邮电出版社挤了进来。我则两相努力,单等某一方递出最终的合同。而这时刻,博文视点的周筠老师也得了消息,打算要出版这本书了。缘于此前跟蒋涛的承诺,我很遗憾地拒绝了其它两家的合同(尽管合同已经寄了过来),从此这本书的出版权落在了博文视点(电子工业出版社)的手里。

这件事我一直对邮电、清华的两位朋友深怀愧意。在《大道至简》的致谢中再一次提到这件事,用了八个字“未能兼美,深为致歉”。其实哪里单单是致歉的事情,心中之惭愧不便言说罢了。

四、《大道至简》中的古文

=======

这本书引用了不少的古文,由此引起的争议也不少。其实,我想反方同学读书大多不细致。因为仔细地看去,就会发现我所引的古文多是大家熟读的。很多原本就是直接来自于成语,概略地数过去,就有:愚公移山、三人为众、皮之不存毛将焉附、问道于盲、徒有其表、买珠还椟、自相矛盾、一鼓作气(三鼓而竭)、工欲其事先利其器……这些成语或寓言,大多在中小学的课本中就学过,所以谁要说读不懂或者不易读,那我实在不知道应该如何回应才好。

我大致地统计过,这些古文中生僻的只有三四处。生僻的引文我要么作为章节前的引用不讲,要么就讲得很细。所以在我看来,第一版中的古文如果令人不快,那么这人大概是根子里便不喜欢古典,而不是文化知识上的欠缺。

由于这本书本来就是讲思想方法的,因此很多古文并不直接引用原意,而是引申开来讲。例如“求道于盲”,原本是指不正确的做法,而在《大道至简》这本书中,提出的观点却是:可以求道于盲,但别睁着眼问。

很多人跑来给我说需求做不了,跟客户没法沟通。其实问题在于他根本不了解客户,也不会顺着客户的思路去了解需求。我见过很多客户为了满足软件开发方的“需求”,而组织什么UML或RUP的培训班,甚至学习一些建模或者流程工具来描述他们的想法,每每看到这种情况,我都为客户感到痛心:他们要付出多大的学习成本,才能满足软件公司对他们的(而不是他们对软件公司的)期望啊?

求道于盲真的错了吗?南橘北枳究竟是橘的问题,还是枳的问题,亦或者两者皆不是?……总之,这些(工程中的)问题,原本只是思想方法的问题,而现在散落在工程实践中,被人们用不同的理论、方法解来解去,最终弄得一团糟。

所以我说:命题设错了,就成了问题了。

就如同这里的古文,我根本就不看成问题。因为问题并不在于易不易读,而在于读的人根本不想读。

那就不是我的问题了。

五、插图与漫画

=======

邵荣国夫妇是我多年的好友了,邵先生现在在郑州一家公司任艺术总监,而他夫人(明明)则与他是同学。第一版的漫画是由明明画的,画稿的创意来自于她读这本书的过程。第一版中邵先生只画过一辆坦克,但在第二版中却没有用这一稿,因此在48页上的那辆坦克仍是明明的原作。

第二版决定加入一套“愚公移山记”的漫画,这套漫画最初我仍是请明明执笔。那时她正怀着小宝宝,赶在小宝宝出生前,明明给我了这套画稿——再次感谢她的工作。后来,周筠老师觉得画风不够细腻,希望重画一套时,明明正在哺育小宝宝,我已是不敢打扰的了。

再找画稿作者的任务很艰难,而且时间太紧。最终帮我完成这项任务的是同事武洲,我从他家领养了一只小猫,缘此而相互熟悉。而他给我推荐的人选,也是盛大网络的另一名前同事,叫丘宝——这不是他的真名,而是小名,但他希望用这个名字。丘宝很痛快地接受了这个“不可能完成的任务”。接下来两周,他完成了这套画稿。

当然,这里还得感谢邵荣国和明明。这套画稿的脚本我一早便已写好,而明明也已经为此完成了一套作品。而丘宝则需要用另一种画风来做这件事情,有了脚本和画稿垫底,便少费了很多周折。对此邵荣国夫妇俩功不可没。

事实上,邵荣国也只为这套漫画画过一个很卡通的铁匠,后来丘宝在绘制这一页时,换做了一个奋力敲击的铁匠,于是整套漫画(以及插图)中便再也找不到邵先生的影子了。

丘宝也是我要真心感谢的一位朋友,连周筠老师也夸赞他的认真与专业。《大道至简》第二版中的这套四格漫画,每一处细节、每一个人物都非常精到。而我尤其赞赏的是他言出必行的行事作风。

最后提到一些细节,这套漫画只有九幅,而全书却有十章。这是为什么呢?事实“愚公移山”的故事是先写的,而在为本书各章配漫画时,发现第四章是讲沟通问题的,而愚公移山的故事里没有任何与沟通相关的内容,因此只好不画这章的漫画了。

而其它各章的漫画与书的内容都是有相关性的——讲述的是相同或相近的内容。所以我一直给周老师说,漫画是书中思想的一条暗线,而那篇古文,说的则是与正文相近同的内容,只是说法不同而已。

六、封面与章首

=======

《大道至简》一书的第二版是在2006年9月初完稿的,之后便是审校、排版之些工作。其间的辛苦自不必讲,与博文视点的晓菲编辑用了大概两个月才磨合到工作状态。这期间,除正文和整体版式之外,序言、漫画、附录中的文言和封面都未定稿,因此我还得一件件去跟进。

简单的一张封面,没想到最终却成了整件事的瓶颈。因为“大道至简”这四个字实在太过抽象,因此邵先生给出的第一个设计是一只手,指尖有光晕一圈圈地扩散出来,其意则在于道的传播。为了让这个封面看起来与计算机有些关联,手的旁边还飞舞着很多数字0、1。

(封面样图一)

这张封面很自然的被否定了,因为包括我这没什么美感的人都觉得它奇丑无比。周筠老师说拿到这个封面时差点被吓得从椅子上翻倒过去,实在不忍目睹,要把这页揭去了才敢看正文的,哈哈。还好这是邵先生的一个同事的创意,因此做得丑也不跌份。后来邵先生又做了数稿封面,也是不满意。我又找到以前《Delphi源代码分析》一书封面的原创意者李静(bubu),希望她能给出一个构思来。然而面对“大道至简”四个字,bubu也才思枯竭了。

不过在这个过程中,我们达成了一个共识:封面并不是要表达“大道至简”,而是着力于突出抽象的“道”,或者本质的“简”。也就是说,要么求简,要么释道。

在困惑许久之后,在某晚临睡时,我突然想到三个和尚没水喝的故事。这不仅是因为“三”代表团队问题,而且三个和尚其实也是一个管理问题、团队问题。此外,这个故事也曾经被陈抗先生引用来解释奥尔森的“集体行动”理论。我觉得三个和尚的故事背景足以隐寓团队中的某些“至简”的智慧。因此随后,我请丘宝绘制了一幅“三个和尚没水喝”的漫画,又请邵先生再次设计封面。

(封面样图二)

这次看来不错,但在封面版式上的书名用字却迟迟定不下来:因为那“三个和尚”的缘故,字体选择总是显得别扭。周筠老师则第三次压下了书稿的最终印刷,把“重新设计封面”的任务交到了方舟的手里。几周过去,方舟终于开始抱怨“三个滑稽的和尚”限制了他的设计思路,把黑锅扔到了这幅封面底稿的头上。据说,当得知我同意放弃“三个和尚”的创意时,方舟兄竟开心得大喊:“别了,和尚们。”

接下来呢?方舟兄前门向三个和尚辞行,后门则揖请三个道士。一方面和尚换作了道士,另一方面“没水喝”的工程窘况,换作“论道”的学术盛况。于是我们看到了最终这个封面,而这个封面让周老师和我都大呼过瘾,是很难得一见的好设计。

(封面样图三)

许多天之后,我仍在品味这本书的设计。然而我发现,它与最初的那个丑陋的“一只手”没有根本的区别:以三人中最左侧的道士揖起的手为中心,仍是一圈圈的光环,寓意“道”的光芒在传播开去;而背景中加上了出自黑客帝国的数字瀑布,以体现与计算机相关的含义。

回顾这个长达数月的设计过程,白底黑墨的三个和尚,换成了简笔反色的三个道士;将简单的0、1数字换成了炫丽的数字瀑布;将规则的几何圆周换成了如何灯晕闪烁……然而有谁注意到:创意仍不过是一样的创意,加上设计就变成了商业的作品。同样的看去,原本简单的工程本实,已经泛滥为整个行业的浮华。

谁会回过头去,看看原初的那些简单、甚至显得丑陋的本相呢?

七、其它

=======

很感谢一些朋友来信与我谈论书中的古文。例如汤国华先生甚至例举“文章里的每一个方程式都会让他的读者减半(霍金)”,希望我注意到这个问题,并说“你文章开头的文言,也一样”。很感谢他,以及所有朋友们对此的关注。我首先认为汤先生的意见非常正确。但一方面就我个人来说,是很难容忍对传统文化的漠视的。但另一方面,只要不妨碍我对思想的表达,我也并不介意于用东方思想,还是西方哲学来表达我的个人观点。因此,我既读《二十四史》,也读《权力与繁荣(奥尔森)》。

不过本书既然是在讲我的思想,那自然用的是我的思想方法。在这方面,我承认我这几十年还是在按中国人的法子活着,固而也是按中国人的法子在想事情,所以也更易于用中国的思想哲学来解释自己。如果让我用西化的语言去做这件事,我做不好,也不能自欺欺人,所以请愿谅我只能做个中式的学究吧。

既要做个中式的学究,那索性做得像样一点。《大道至简》第二版中加入一篇“愚公移山记”,这数千字的文言多少也与第一版的被批评有关。——要文言就文言得彻底一点,不如我自己来写一篇,占用几页的字纸来彰显一下古文的精彩,有何不可?

那么这篇文言又是怎么写成的呢?且等我下回再讲。

转载于:https://www.cnblogs.com/encounter/archive/2007/04/15/2188674.html

《大道至简》的幕后故事相关推荐

  1. 《大道至简》的幕后故事(2):“愚公移山记”人物篇

    引子 ======  "愚公移山记"文言和白话两篇附录,是<大道至简>第二版中重要的组成部分.但我们这些读惯了技术书的人,大概是不会象文科生一样,一边考证着一边读古文, ...

  2. 《大道至简》的幕后故事(2):“愚公移山记”人物篇 1

    2007年04月18日 01:05:00 引子 ====== "愚公移山记"文言和白话两篇附录,是<大道至简>第二版中重要的组成部分.但我们这些读惯了技术书的人,大概是 ...

  3. 《大道至简》的幕后故事(5):“愚公移山记”军事谋略篇

    2007年05月01日 00:53:00 引子 ========== 上一节写的地理,这一节只讲策略.我自己读时,时时觉得<大道至简>一书写到末了,未见得有一篇古文精彩,只是这篇古文,愿细 ...

  4. 《大道至简》的幕后故事(5):“愚公移山记”军事谋略篇 1

    引子 ========== 上一节写的地理,这一节只讲策略.我自己读时,时时觉得<大道至简>一书写到末了,未见得有一篇古文精彩,只是这篇古文,愿细读的人并不太多罢了. 这篇军事谋略,与工程 ...

  5. 大道至简:软件工程实践者的思想(典藏版)

    周爱民 著 ISBN 978-7-121-17790-3 2012 年8 月出版 定价:49.00 元 16开 228页 内 容 简 介 本书提出了审视软件工程的全新视角和软件工程的体系模型(EHM, ...

  6. “不要急”——《大道至简》典藏版(第四版)前言

    什么!你还在讲<大道至简>?! 是的,我说的是<大道至简>,它的上一个版本是"点评版",也是我这么多年来非常遗憾的一个版次.当然,这也是刊印这个" ...

  7. 大道至简第一章读后感

    当今社会,信息化飞速发展,软件的需求也越来越高,而<大道至简>给我们点透了编程的精义. 大道至简第一是讲的便是编程的精义,文章借愚公移山这个故事来阐释编程的基本思路:出现一个问题(惩山北之 ...

  8. 《大道至简》第一章编程的精义伪代码读后感

    最近,读了老师推荐的一本关于编程思想的书<大道至简>.书中第一章主要讲编程的精义,以愚公移山的故事来形象的讲解编程的的过程.通过一个简单的寓言故事,看到原始需求的产生,项目的沟通,项目目标 ...

  9. 大道至简第一章阅读笔记

    大道至简的第一章中开头就举出了一个家喻户晓的故事-愚公移山,这个故事可以很容易的看出原始需求,即:"惩山北之塞,出入之迂",项目目标:"毕力平险,指通豫南,达于汉阴&qu ...

最新文章

  1. JavaScript数据结构与算法——字典
  2. 关于expanded一级二级菜单数据的分组排序
  3. 一个mp4文件分析工具
  4. CSS 实例之翻转图片
  5. [转]c++类的构造函数详解
  6. Android Studio 复制粘贴图片到drawable文件夹没有效果 - 解决方法
  7. OpenCV IplImage图片结构
  8. 网易云热歌榜评论(爬虫项目)
  9. Python中通过索引名称提取数据loc()函数Python中通过行和列下标提取数据iloc()函数
  10. 嵌入式系统工程师的职位要求,你还差多少?
  11. 转炉炼钢计算机仿真实验报告,计算机仿真、实验报告.docx
  12. python抢购爬虫_一个关于爬虫的抢购软件优化问题
  13. Tomcat探秘(1):Tomcat是什么?
  14. 湖北武汉机械员报考机械员培训改革的三大变化建筑七大员报考
  15. 【观察】紫光云:十年创新筑牢发展底座,政企云市场打出逆袭战
  16. 【数论】第1章 整数的可除性 第1节 整除概念与带余除法(3) 带余除法
  17. MAKER配置文件详解
  18. H5新特性(六)——Workers和WebSocket
  19. 手把手教你玩转直流电机PID双环控制
  20. Android读取大文件方法,Android 读取大文件txt

热门文章

  1. Bit-Z召开全球生态联盟暨韩国战略发布会 将成立BZ资本
  2. Ethereum Bootstrap 以太坊本地私有链开发环境搭建
  3. 【源码解读】Screencap源码分析-基础篇
  4. Ubuntu下使用WebStorm开发nodejs(一)
  5. python 12306查询不到车次_python实现自动抢12306火车票,妈妈再也不用担心我没有车回去了...
  6. c语言结构体与共同体课件,《结构体与共同体》PPT课件.ppt
  7. 横坐标标签如何变斜体?
  8. 三值的排序 Sorting a Three-Valued Sequence
  9. [USACO1.2]挤牛奶Milking Cows
  10. php json_encode后乱码,php json_encode 中文乱码的解决方法