rainyzz's blog

《Linux/Unix设计思想》读书笔记

这只是我自己的总结,其中一些我没有深刻印象的东西就没有列出来。

其他的:

1.NIH(Not Invented Here)——–非我发明就要自己写,要利用别人的优秀代码

2.三个系统:

(1)第一个,初创系统:简单,做出之前没有的东西

(2)第二个,专家系统:功能全,臃肿

(3)第三个,改进系统:大幅优化,颠覆性,最优体验

系统的开发都要经历这三个阶段。

九个准则:

1.小即是美:

(1)易于维护

(2)易于理解

(3)易于结合

(4)耗费小

2.让每个程序只做好一件事

3.快速建立原型:

(1)降低风险

(2)专注整体架构

4.舍高效率而取可移植性:

(1)硬件发展快

(2)过度优化通常不可移植

(3)当今跨平台的趋势

5.采用纯文本存储数据:

(1)通用

(2)易于查看,编辑

(3)简化工具使用

6.充分利用软件杠杆效应:

(1)借用优秀代码

(2)避免NIH

(3)让你的代码能被别人借鉴

(4)让一切自动化—–自动化测试

7.用shell脚本提高杠杆效应和可移植性

8.避免强制的用户界面(CUI):

(1)命令解释器难以编写

(2)难以与其他程序结合,无法运用杠杆效应

(3)界面和程序分离

9.让每个程序都成为过滤器

小准则:

1.允许用户定制环境

2.纸质数据无法管理,将数据留在硬盘里

3.寻求90%解决方案

4.小写字母易于阅读

5.部分之和大于整体

6.silence——ls命令,当目录里没有文件时候什么也不显示