书籍推荐:《Linux and the Unix Philosophy》

来源:互联网 发布:武汉淘宝客服外包 编辑:程序博客网 时间:2024/04/28 06:30

总有这样的一本书,让你读后有相见恨晚的感觉,对我来说,《Linux and the Unix Philosophy》就是这样的一本书。在看书的过程中,总有捡到宝藏的感觉,这里是金光闪闪的黄金,那里又有钻石发出刺眼的光芒,看完我很清楚地知道:它几乎改变了我以前对软件开发的思想观念。

之前有思考过这样一个问题:从计算机发展初期到现在几十年间有什么东西是不变的而且在未来仍将继续存在下去?然后,我在《Linux and the Unix Philosophy》上找到了答案,就如同书名一样:Linux和Unix的哲学,有人将中文版翻译成《Linux/Unix设计思想》,我个人觉得不是很合适,或许是作者(or出版商)认为“哲学”一词出现在书名中会吓倒绝大多数人从而影响销量吧。在很多人眼中,哲学是很玄很虚的东西,而哲学家就是怪胎(请不要怀疑,本人有过亲身体验,有一次我在看《Code Complete 2》,然后被另一同学看到,他问:这是什么书啊?怎么你看的书都跟其他人不一样啊?我回:一本跟软件开发的哲学和代码风格有关的书。听到“哲学”一词,他脸上的表情以及眼神再加上只“哦”地回了一声都在向我传达着一个信息:你是怪胎。),这群怪胎聚在一起就这些很玄很虚的东西可以谈上一整天。在我看来却不是这样的,哲学是最讲究实用的,方法论不就是为了指导人们更好地解决现实世界里的问题而存在的么?世界观则提供更抽象层次上的指导(说到“抽象”,人们又想到很玄很虚的东西,然后=>怪胎。-_-!!!)。

好吧,我扯远了,让我们回到Linux和Unix的哲学上来,在《Code Complete 2》(这是另一本让我相见恨晚的书)中提到:从本质上说软件开发就是不断地去发掘错综复杂、相互连接的整套概念的所有细节......管理复杂度是软件开发中最为重要的技术话题。而《Linux and the Unix Philosophy》一书中列出的9大准则近乎完美地回答了软件开发中的复杂度管理问题,更不可思议的是,这种哲学自Unix诞生以来一直都伴随其左右,并波及整个软件行业,以不同的表现形式为人们所认识:面向对象编程、极限编程、重构、互联网、开源软件......只是我们大多数人都不曾思考这些技术隐含的哲学(或许这些技术的发明人也是在不知不觉地情况下发明出这些技术的)。

软件行业发展这么快,很多从业人员更新知识的速度往往跟不上,到处有程序员自称“苦逼的程序猿”、“软贱攻城狮”、“挨踢民工”、“码农”......,真实情况我不清楚,但我觉得如果大多数从业人员都抽点时间看一看这些经典书籍(我也是最近才真正明白读经典书籍和大师级的作品的重要性,还好不算太晚,才大三刚结束不久,在就业前还有几个月补补知识),相信情况一定会有所改观的吧。几乎不写博客的我看了这些书都忍不住上来吹一吹水,可见其影响力之大,(^_^)v。

下面来看一下《Linux and the Unix Philosophy》一书中提到的9大准则吧:

  1. SMALL(小即是美)
  2. 1THING(让每一个程序只做好一件事情)
  3. PROTO(尽快建立原型)
  4. PORT(舍高效率而取可移植性)
  5. FLAT(使用纯文本文件来存储数据)
  6. REUSE(充分利用软件的杠杆效应)
  7. SCRIPT(使用shell脚本来提高杠杆效应和可移植性)
  8. NOCUI(避免那些强制性的用户界面)
  9. FILTER(允许用户定制环境)
请允许我冒昧地再推销一下,买9送10啊,免费赠送10个小准则:
  1. custom(允许用户定制环境)
  2. kernel(尽量使操作系统的内核小而轻巧)
  3. lcase(使用小写字母并尽量简短)
  4. trees(保护树木)
  5. silence(沉默是金)
  6. parallel(并行思考)
  7. sum(各部分之和大于整体的效果)
  8. 90cent(寻找99%的解决方案)
  9. worse(更坏就是更好)
  10. hier(层次化思考)

原创粉丝点击