unix哲学
- 让每个程序就做好一件事。如果有新任务,就重新开始,不要往原程序中加入新功能而搞得复杂。
- 假定每个程序的输出都会成为另一个程序的输入,哪怕那个程序还是未知的。输出中不要有无关的信息干扰。避免使用二进格式输入,而是坚持使用文本流,不要坚持使用交互式输入。
- 尽可能早地将设计和编译的软件投入使用,对于拙劣的代码别犹豫,扔掉重写。
- 优先使用工具减轻编程任务,工欲善其事,必先利其器。
- 花哨的算法复杂度大,并比简单的算法更容易出bug,更难实现,理解和维护。尽量使用简单的算法配合简单的数据结构。
- 编程的核心是数据结构,而不是算法。
- 不确定的时候就用穷举。
- 小就是美,在确保任务完成的基础上,程序功能尽可能少。
unix 原则
- 模块原则:使用简洁的接口拼合拼合简单的部件。
- 清晰原则:清晰胜于机巧。
- 组合原则:设计时考虑拼接组合。
- 分离原则:策略同机制分离,接口同引擎分离。
- 简洁原则:设计要简洁,复杂度能低则低。
- 吝啬原则:不要编写庞大的程序。
- 透明性原则:设计要可见,以便审查和调试。
- 健壮原则:健壮源于透明和简洁。
- 表示原则:要求逻辑质朴而健壮。
- 通俗原则:即最小惊异原则,接口设计避免标新立异。
- 缄默原则:如果一个程序没什么好说的,就沉默。
- 补救原则:出现异常时要给出足够的错误信息。
- 经济原则:宁花机器一分钟,不花程序员一分钟。
- 生成原则:避免手工hack,尽量编写程序去生成程序。
- 优化原则:原型设计,先求运行,再求正确,最后求快。
- 多样原则:决不相信所谓“不二法门”的断言。
- 扩展原则:设计着眼未来,未来总比预想来得快。
unix 哲学之总结
所有Unix的哲学用一句话来概括就是KISS
原则:
|