- 海之寻趣
- 冉之
- 2011-03-17 07:04
- CC BY-NC-SA
《UNIX编程艺术》读书笔记二:Unix哲学
第一章:哲学
1.机制,而不是策略
机制是解决问题的框架步骤,策略是解决问题得具体方法。策略相对短寿,而机制才能长存。
2.一个程序只做一件事,并做好。程序要能协作。程序要能处理文本流,因为这是最通用的接口。
不要向程序里加入花哨不切实际的内容。可以通过进程间通信来进行协作,书中认为不如文本流(不知多进程协作的程序和并行编程是不是有同样的效果和效率)。
3.在没有对代码估量前不要优化速度。
尚未触及的东西:优化速度。
4.模块原则:使用简洁的接口拼合简单的部件
Brian Kernighan说“计算机编程的本质就是控制复杂度。”用清晰的接口把模块组合到一起就是降低整体复杂度的方法。
5.清晰原则:清晰胜于机巧
做好代码注释,在选择算法和实现时就应考虑到将来的可扩展性。复杂代码容易滋生Bug
。6.组合原则:设计时应考虑拼接组合
使用文本流衔接程序。
7.分离原则:策略同机制分离,接口同引擎分离。
分离方法之一:将应用按照一个库来编写,这个库包含许多由内嵌脚本语言驱动得C服务程序。而至于整个应用的控制流程则用脚本来撰写而不是用C语言。例子就是Emacs。
分离方法之二:将应用程序分成可以协作的前端和后端。通过套接字通信,前端实现策略,后端实现机制(?)。
8.简洁原则:设计要简洁,复杂度能低就低。
“过渡复杂来源于项目的要求,这些要求被公司当做推销热点。庞大臃肿变成了业界的标准,每个人都在使用臃肿不堪、bug极多得软件,连软件开发人员也不敢敝帚自珍。”目前确实如此!比如现在的搜狗输入法。我要的只是一个输入法。
9.吝啬原则:除非确无它法,不要编写庞大的程序。
10.透明性原则:设计要可见,以便审查和调试。
编程开始就设计调试选项。实践用调试脚本调试程序。
11.健壮原则:健壮源于透明与简洁。
12.表示原则:把知识叠入数据以求逻辑质朴而健壮。
数据比程序逻辑更容易驾驭。设计中要主动将代码得复杂度转移到数据中。(怎么实现?)
13.通俗原则:接口设计避免标新立异。
认清“默认”这种意识。
14.缄默原则:如果一个程序没什么好说的,就沉默。
“沉默是金”。
15.补救原则:出现异常时,马上退出并给出足够得错误信息。
16.经济原则:宁花机器一分,不花程序员一秒。
正确使用高级语言。
17.生成原则:避免手工hack,尽量编写程序去生成程序。
“用程序生成程序”!
18.优化原则:琢磨前先得有原型,跑之前先学会走。
类似极限编程:先求运行,再求正确,最后求快。用C前可先用解释性语言搭建程序。不要迷信需求分析。
19.多样原则:绝不相信所谓“不二法门”的断言
不止运用于编程方面。科学的精神就是怀疑一切。
20.扩展原则:设计着眼于未来,未来总比预想快
21.K.I.S.S
Keep It Simple,Stupid!!!