设计哲学
UNIX 设计哲学
UNIX 背后的哲学:
编写只做一件事并且做好这件事的程序
编写能够协同工作的程序(没有额外的输出,不强制要求交互式输入)
编写处理文本流的程序,因为文本流是通用接口
UNIX 也采用了"差即好"(Worse is better)的哲学。
这种思维方式很强大。在更高层次上,你在函数式编程中经常可以看到这种思想:构建专注于单一功能的原子函数,没有额外的输出,然后将它们组合在一起来完成复杂的任务;组合中的所有函数都是纯函数;不需要跟踪全局变量。
也许正是这种思想的直接结果,UNIX的设计专注于两个主要组件:
进程(Processes)
文件(Files)
核心原则
简洁性:每个程序只做一件事
可组合性:程序之间通过管道和重定向协同工作
文本流:所有程序都处理文本流,作为通用接口
可移植性:程序可以在不同的UNIX系统上运行
在现代软件中的应用
这种设计哲学在现代软件开发中仍然具有重要影响:
微服务架构:每个服务专注于单一职责
函数式编程:纯函数和函数组合
DevOps工具链:小型专用工具的组合
Unix管道:通过
|
连接多个命令
与其他设计哲学的对比
"MIT 哲学":追求完美和复杂性
"New Jersey 哲学":简单性优先,接受妥协
UNIX选择了后者,这解释了为什么它能够如此成功和广泛传播
参考资料
How Unix Works: Become a Better Software Engineer - 深入了解UNIX工作原理
The UNIX Philosophy - UNIX哲学的完整概述
最后更新于