2011-07-06 21 views
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. 是晶圆厂的CLI(有多个命令,每一个都可以有参数)命令行工具中常见的设计?对我来说,svn工具的cli似乎更常用(不确定,但)。
  2. 难道是简单的实现使用plac(或argparse)晶圆厂的CLI?
  3. 如果我决定去与SVN的CLI,可以使用这个PLAC实施?我喜欢plac,但我一直无法弄清楚如何直接添加选项到工具,而不是子命令。它绝对可以用argparse来实现。

P.S .:的唯一原因晶圆厂的CLI吸引我的是一个可以一步完成多个任务,但是实施的难易程度是我最关心的

回答

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

如果你想简化文档和使用,去与SVN的方式。我可以明白为什么fab的方式似乎很吸引人,这对于程序员来说是合乎逻辑的。但实际上这对用户来说确实很复杂和混乱。

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

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

但是,你只是无所事事,不打算分发您的工作,然后去上,松弛的方式使用FLAC)。