资本实力的软件公司于 2003…2004 年间倒掉了。我在这家
公司前后工作了 7 年。在 2003 年 2 月的时候,我开始请
假在家写书,以一个绝对 Coder 的身份完成了《Delphi
源代码分析》。用这一年的写书时间,完成了我对这些年
的程序生涯的回顾和反思,我看到了我在做 Develope
Manager 和 Project Manager 过程中的得失,也透析了那家
…114
…………………………………………………………Page 119……………………………………………………………
『大道至简』
公司几年来的成败与沉浮。
我再次与总经理 P&J 对坐的时候,我们又讨论到公
司的问题。他依旧固执地认为“最重要的是人的问题”。
我看不到他对管理、工程和决策上的任何反思,于是我终
于辞职了。
2004 年 3 月,我开始应职于一家新的软件公司。因
为规模小,所以实施软件工程的风险也就小。在一次公司
内的软件工程培训中,我突然意识到工程实践与工程思想
之间的差异与关系,也同时看到《软件工程——实践者的
研究方法》一书的根本性的不足。时值我那本《Delphi
源代码分析》将近完成之时,于是我匆匆记下当时的想法,
并确定了这本新书的名字《大道至简——软件工程实践者
的思想》。
大道至简
直到现在① ,这本书的基本目标仍旧与它最初定名时
一样:
) 这是一本小书
) 只用读与思考,没有实作
所谓“小书”,是我不想做成教材或者宏论。思想应
该简明,阐释应该清晰,而读者应该更多地去思考,而不
是跟随这本书去完成什么。
① 我写书的习惯是先写前言,这相当于大纲。因此所谓“现在”,
是指我写下前言的这个时候:2004。11。01 凌晨 5 时。
…115
…………………………………………………………Page 120……………………………………………………………
后语
老子说“道之为物,惟恍惟惚”。道是要体悟的,而
不是象做木工活那样是“会与不会”的问题。道是什么呢?
“道是本体,是规律,是自然”,简而言之,道是既存在
的事实和影响事物发展的规律。
这里需要说明的是,道并不人为的规则,而是事物本
身特质的规律。因此,本书中所要讲述重点是这种规律。
即使提及到一些“实践规则”,也是在对规律讨论之后。
读者应该发现这些“人为规则”是那样的遵从于“本质规
律”。
经常听到的一句话是“规矩是人定的”,因此也要“靠
人来推翻”。但是(初级的) 软件工程实施者经常抱着一些
经典的教材一步一趋,此谓之曰“知其然而不知其所以
然”。无僭越便无建树,无大成者。
画眉深浅入时无
我不是太喜欢写很“入时”的东西。“入时”的往往
是新的,因而也就乏有研究。这样的东西流于口头的讨论
是可以的。然而著书立说,是要将心得之见或谨严之论呈
现给读者,不是把自己想说的话说出来就可以的了。
在写《Delphi 源代码分析》的时候,Delphi 8 都已经
发布了,Win32 的时代也已近末路。促使我写那本书的原
因,在于没有人用 Delphi 来研究操作系统的内核机制,
而 Delphi 的源码中对这些的实现细节实在是宝藏。绝大
多数用过 Delphi 的开发人员,入源代码之宝山而空回,
实在令人痛惜的。因此那本书能否买得了钱我是不在乎
…116
…………………………………………………………Page 121……………………………………………………………
『大道至简』
的,我在乎的是读过那本书的朋友,能从编译器的角度上
对 Win32 体系增加多少的了解。
从 Delphi 7 的时代我就开始接触 Framework 。
2003 年的时候给 BorCon China 做演讲时,我已经对
Borland 在底层上为 Delphi 的实现非常了解了。因
此如果以“入时”( 以及“适时”)而论,在《Delphi 源代
码分析》完成之后,我应该写的书是《Delphi 源代
码分析》,来全面讲述 Delphi7 、Delphi8 和 Delphi9(Delphi
2005) 中对 下开发的实现。
这个计划被我搁置了。
在我如今看来,语言其实是开发的细微未节,而在大
学时代、在课桌上令人昏昏欲睡的《软件工程》才是软件
开发中的髓质与灵魂。十年的软件开发实践中,其实在很
多时间里我都落入了细节陷阱。
“实现”的欲望是从程序员出身的管理者的通病。因
此如果你仍然在思考选择什么语言、如何重构,以及在开
发部里争论一段代码有没有或应不应该采用某种模式,那
么请你暂时沉寂下来,听我说:那是细节。
真正的问题是:你的老板要求你下周二就给客户演示
这个系统;而客户并不关注你的实现细节,他关注的是你
本月月底是否能 Close Project 。
软件工程首先关注的是以客户为对象的、整个工程的
成败和质量。根本上说,技术性、重用性等等,只是保障
工程成败与质量的手段而已。
…117
…………………………………………………………Page 122……………………………………………………………
后语
①
重要的东西往往并不入时 。例如你的ThinkPad还在
工作,仅仅是因为电池还没有用光。
知之、好之、乐之
从读者的角度上来讲,是“知之不如好之,好之不如
乐之”的,因此作为作者,则希望自己的作品使人“以之
为知,以之为好,以之为乐”。在写《Delphi 源代码分析》
时,我的书稿的第一页就写着“知之、好之、乐之”,然
而那本书仅能给人以知识,让人“知道”就很不错了,况
乎乐哉?
读书给人以痛苦之感是有可能的。如果读《Delphi
源代码分析》不感到痛苦,那是没认真读。然而我毕竟不
是想让人(或者想授人)痛苦的,将《Delphi 源代码分析》
写到那般地步,非我所愿。
读《大道至简》的话,就用不着这样了。我虽然做不
到让读者“以之为乐”,但“以之为好”还是可以的。我
希望读者可以轻松地将这本小书读完,然后便可以束之高
阁了。毕竟这本书不是理论,也不是方法论,只是思想。
思想已经领悟,文字的、纸质的东西还有什么价值
吗?
① 你当然也可以由此反推出第 7 章的部分内容并不重要。的确,
那只是我思考事物的一种方式,我希望你看到本书中讲的思想是
如何被实例化的。但对于本书来说,如同我一再强调的那样:这
是枝节。
…118
…………………………………………………………Page 123……………………………………………………………
『大道至简』
致致谢谢
首先感谢我的老朋友,程序员杂志社社长蒋涛先生。
在我看来,他所作的序,既是对本书的赞许,也是对他?
小说推荐
- 软件工程思想
- 作者:林锐前 言 在60年代计算机发展初期,程序设计是少数聪明人干的事。他们的智力与技能超群,编写的程序既能控制弱智的计算机,又能让别人看不懂、不会用。那个时期编程就跟捏泥巴一样随心所欲,于是他们很过分地把程序的集合称为软件,以便自己开心或伤心时再把程序捏个面目全非。人们就在这种美滋滋的感觉下热情地
- 最新章:第53章
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 最新章:第295章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 最新章:第17章
- Linux实用培训教程(PDF)
- -Page 1-rrktqt的个人空间 Linux实用培训教程第一部分 作者:红联Linux实用培训教程第一部分-共三部分解的Linux知识,循序渐进的介绍Linux相关知识,从入门到提高,希望对所有学习Linux的朋友都有帮助 红联Linux论坛是致力于Linux技术讨论的站点,目前网站收录的文章
- 最新章:第42章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 最新章:第31章