首页 > 代码库 > Unix编程艺术读书笔记(一)
Unix编程艺术读书笔记(一)
Unix编程艺术读书笔记(一)这本书是一位面试官告诉我的,很感谢他的指点,关于面试的详细过程,我想以后再写,当然我也意识到自己的不足,一方面是面试的技巧,还有一方面就是学习的方法。阅读这本书很享受,加上之前的积累,一些疑惑,还有一些基础的不足,在这本书里找到了归宿。
下面,一起来享受这本书的精华吧
Unix诞生与1969年,那时候我们还在闹文革吧,可一个可以改变21世纪甚至更远的未来的操作系统问世,至少现在的Linux是基于Unix的设计哲学。Unix是唯一一个在不同种类的计算机,众多厂商和各种硬件上提供一致的,文档齐全的API的操作系统。
Unix传统将重点尽量使各个程序接口相对小巧,简洁和正交,并有假定每个程序的输出都可能成为另一个程序的输入。
Unix的哲学可以这样表述:一个程序只做一件事情,并做好。程序要能协作,程序要能处理文本流,因为这是最通用的接口。
Unix哲学从整体上可以概括为如下几点:
1模块原则,使用简单的接口拼合简单的部件(其实文本流规范已经可以将程序的接口拼接起来了)
2清晰原则,代码要写的清晰可读,容易维护
3组合原则,设计时考虑拼接组合,在输入输出方面,Unix极力提倡采用简单、文本化、面向流、设备无关的格式。因此一般在Unix下多数程序都尽可能采用简单过滤器的形式,将一个输入的简单文本流处理为一个简单的文本流输出。
4分离原则,策略同机制分离,接口同引擎分离
5简洁原则,设计要简洁,复杂度能低则低
6健壮原则,源于透明和简洁
7通俗原则,接口设计避免标新立异(最少惊奇原则)
8缄默原则,即程序只做该做的事,不做多余的事,默默工作
9补救原则,出现异常时,需要给出足够的错误信息
10生成原则,尽量用程序生成程序,因为这比手动生成更值得信赖
一言以蔽之, KISS(keep it simple, stupid)
Unix的统一性理念
Unix有几个统一性理念或象征,并塑造了API及由此形成的开发风格。其中最重要的一点即“一切皆文件”模型以及在此基础上的管道概念(连接一个程序的输出和另一个程序的输入通路)。
(未完待续 ...)