一、什么是Unix哲学?
其实就是开发Unix时的指导思想。
二、Unix哲学17条原则(本人自我理解)
1、模块化原则(Rule of Modularity) —— 就是可复用和可替换的代码。
2、清晰原则(Rule of Clarity) —— 就是代码交给其他人看时,都能明白其中的含义。代码尽可能易读和易理解。
3、和解原则(Rule of Composition)
4、分离规则(Rule of Separation) —— 就是B提供接口内部实现,A直接使用B提供的接口,不用关心内部实现。
5、简单规则(Rule of Simplicity)
6、简约规则(Rule of Parsimony) —— 原则5和6,就是一切都要尽量的小,尽量的简便可执行。简洁为美,简洁至上。不要刻意去编写庞大而复杂的程序。
7、透明度原则(Rule of Transparency) —— 就是设计要透明可见,以便审查和调试。充分考虑透明性、显见性、简洁性。
8、稳健性规则(Rule of Robustness) —— 就是代码程序的稳定性、可靠性。也是指易于理解的代码相对于复杂程序中无法预测的意外情况,更容易压力测试。
9、表示规则(Rule of Representation)
10、最小惊喜规则(Rule of Least Surprise) —— 就是要尽量的让每个单元有一个独立的功能,尽量专心只做一件事。
11、沉默的规则(Rule of Silence) —— 就是减少不必要的日志输出,以免造成信息泄露或引起性能问题。
12、修理规则(Rule of Repair) —— 就是类指边届测试,通过输入一些超过范围的数值或非常规操作来测试输入,这样可以验证系统的可靠性。
13、经济规则(Rule of Economy)
14、生成规则(Rule of Generation) —— 就是对于一些固定规则的代码,可以通过自动代码生成工具或者编写抽象的高级程序来生成代码,避免手动编写程序的错误。
15、优化规则(Rule of Optimization) —— 就是先保证运行,其次正确,最后求快。
16、规则的多样性(Rule of Diversity)
17、可扩展性规则(Rule of Extensibility) —— 就是通过使其协议可扩展来设计未来,允许轻松插件,而无需修改其他开发人员的程序架构。
总结:Unix 设计哲学强调构建简单、清晰、模块化可扩展和数据驱动的代码。
资料链接:
《UNIX 哲学基础》:http://software-quality.blogspot.com/2005/12/basics-of-unix-philosophy.html
Unix哲学(维基百科):https://en.wikipedia.org/wiki/Unix_philosophy#cite_note-0