【发布时间】:2011-12-27 08:25:57
【问题描述】:
Unix 哲学教导我们应该开发能做好一件事的小程序。它还教导我们应该将政策与机制分开。我想一种方法是先设计一个基于文本的 shell 命令,然后在此基础上构建一个 gui(如果需要)。
我真的很喜欢可以将小程序组合(通过管道连接)成更复杂系统的想法。我也喜欢这样一个事实,即简单、专注的设计理论上应该比将所有规则绑定在一起的单一系统需要更少的维护。
编写一些程序(例如在 Ruby 或 Python 中)将它的一些功能降级为直接从代码调用的 shell 命令会有多好?更进一步,故意设计一个旨在直接从代码(编译或脚本)调用的 shell 命令是否有意义?显然,这只有在 shell 命令有一些有价值的控制台使用时才有意义。
根据我的经验,我不能说这是我经常看到的一种做法。更多时候,特定于任务的代码依赖于特定于任务的库。当然,我可能不知道的是,我使用了实际上只是外壳命令包装器的库。 (或者更确切地说,shell 命令是某个库的包装器。)
【问题讨论】:
-
我在微服务出现之前就问过这个问题。如果我今天问,我可能会得到不同的答案。
标签: ruby linux unix console-application