刘智勇

刘智勇的博客

他的个人主页  他的博客

《UNIX编程艺术》节选

刘智勇  2009年08月26日 星期三 07:16 | 1384次浏览 | 11条评论

一个程序只做一件事,并做好。程序要能协作。程序要能处理文本流,因为这是最通用的接口。
1.)让每个程序就做好一件事。如果有新任务,就重新开始,不要往源程序中加新功能而搞的复杂
2.)假定每个程序的输出都会成为另一个程序的输入,哪怕那个程序还是未知的。输入中不要有无关的信息干扰。避免使用严格的分栏格式和二进制格式输入。不要坚持使用交互式输入
3.)尽可能早地将设计和编译的软件投入试用,哪怕是操作系统也不例外,理想情况下,应该是几个星期内。对拙劣的代码别犹豫,扔掉重写
4.)优先使用工具而不是拙劣的帮助来减轻编程任务的负担。工欲善其事,必先利其器
5.)编程的核心是数据结构,而不是算法
6.)拿不准就穷举

17条原则
一、模块原则:使用简单的接口拼合简单的部件
二、清晰原则:清晰胜于机巧
三、组合原则:设计时考虑拼接组合
四、分离原则:策略同机制分离,接口同引擎分离
五、简洁原则:设计要简洁,复杂度能低则低
六、吝啬原则:除非却无它法,不要编写庞大的程序
七、透明性原则:设计要可见,以便检查和调试
八、健壮原则:健壮源于简明与简洁
九、表示原则:把知识叠入数据以求逻辑质朴而健壮
十、通俗原则:接口设计避免标新立异
十一、缄默原则:如果一个程序没什么好说的,说沉默
十二、补救原则:出现异常时,马上推出并给出足够错误信息
十三、经济原则:宁花机器一分,不花程序员一秒
十四、生成原则:避免手工hack,尽量编写程序去生成程序
十五、优化原则:雕琢前先要有原型,跑之前先学会走
十六、多样原则:届不相信所谓"不二法门"的断言
十七、扩展原则:设计着眼未来,未来总比预想来得快

计算机编程的本质就是控制复杂度         -----Fred Brooks

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
姚坚锋

回复 姚坚锋  2009年10月18日 星期日 16:54

嗯,这套哲学在今天依然适用,真伟大。

0条回复

马天才

回复 马天才  2009年10月15日 星期四 10:00

重构过很多系统,《重构》也看过很多遍,但还是觉得对重构不入门,每次重构一个系统都是一种煎熬
“对拙劣的代码别犹豫,扔掉重写”,这样的说法看来不错,但在真实的工作环境中很难实践。

0条回复

曹帅军

回复 曹帅军  2009年09月19日 星期六 17:47

这本书从内容上看,因该叫《UNIX哲学》或《UNIX艺术》,因为整本书一行代码都没有,何来“编程”之说,全是关于设计上的哲学思想问题。
个人拙见,呵呵。。。

0条回复

刘智勇

回复 刘智勇  2009年09月11日 星期五 20:07

我还没工作呢,那位GGJJ能帮忙内部推荐

0条回复

端瑞

回复 端瑞  2009年09月11日 星期五 10:41

可把此文标题中的“节选”改为“精选”。

0条回复

刘冠浩

回复 刘冠浩  2009年09月08日 星期二 22:38

Oh~~yeah

0条回复

王超

回复 王超  2009年08月28日 星期五 11:52

正在看此书
看完之后写的第一个项目,写完之后发现我的平均一个class只有不到100行了

0条回复

王单单

回复 王单单  2009年08月26日 星期三 21:56

不做过度设计,不断重构不断扩展

2条回复

電波系山寨文化科学家

回复 電波系山寨文化科学家  2009年08月26日 星期三 16:36

仓禀实而知礼节
衣食足而知荣辱

0条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号