4

我正在尝试为我正在编写的工具开发命令行界面。我在类似于 Fabric 的fab工具的界面和类似于 svn 的命令行工具的界面之间折腾。

fab的使用信息:

Usage: fab [options] <command>[:arg1,arg2=val2,host=foo,hosts='h1;h2',...] ...

svn的使用信息:

usage: svn <subcommand> [options] [args]

请注意,svn它还支持两个选项--version--quiet(至少我正在使用的一个)。

我的问题是:

  1. fab 的 cli(具有多个命令,每个命令都可以有参数)设计在命令行工具中是否通用?对我来说,svn 工具的 cli 似乎更常用(虽然不确定)。
  2. 使用plac(或 argparse)实现 fab 的 cli 会很简单吗?
  3. 如果我决定使用 svn 的 cli,可以使用 plac 来实现吗?我喜欢 plac,尽管我无法弄清楚如何直接向工具添加选项,而不是子命令。它绝对可以使用argparse来实现。

PS:fab 的 cli 吸引我的唯一原因是可以一步完成多项任务,但易于实施是我主要关心的问题

4

1 回答 1

4
  1. 颠覆的方式更标准。
  2. 可能不是。
  3. 你可以用手斧切黄油。

如果您想简化文档和使用,请使用 SVN 的方式。我明白为什么 fab 的方式看起来很吸引人,这对程序员来说是合乎逻辑的。但它实际上对用户来说很复杂而且搞砸了。

Plac 看起来很酷,但您需要安装它。你的用户也是。

在涉及软件工程时,我喜欢遵循一个简单的规则:保持简单和标准,在您真正需要时使用最前沿的技术。应尽可能实现追溯兼容性。

然而,你只是在胡闹,不打算分发你的作品,然后继续,flab 的方式并使用 flac ;)。

于 2011-07-06T02:15:23.630 回答