我正在尝试为我正在编写的工具开发命令行界面.我在类似于Fabric的fab工具的界面和svn的命令行工具之间徘徊.
fab的用法信息:
Usage: fab [options] [:arg1,arg2=val2,host=foo,hosts='h1;h2',...] ...
svn的用法信息:
usage: svn [options] [args]
请注意,svn还支持两个选项–version和–quiet(至少我正在使用的那个).
我的问题是:
> fab的cli(具有多个命令,每个命令都可以有参数)在命令行工具中设计常见吗?对我来说,svn工具的cli似乎更常用(但不确定).
>使用plac(或argparse)直接实现fab的cli会不会很简单?
>如果我决定使用svn的cli,可以使用plac实现吗?我喜欢plac,虽然我还没有弄清楚如何直接向工具添加选项,而不是子命令.它绝对可以使用argparse实现.
P.S.:fab的cli吸引我的唯一原因是,人们可以一步完成多项任务,但是易于实施是我的主要关注点
解决方法:
>颠覆的方式更标准.
>可能不是.
>你可以用手斧切黄油.
如果您想简化文档和使用,请使用SVN的方式.我可以看出为什么fab的方式似乎很吸引人,这对程序员来说是合乎逻辑的.但它实际上很复杂并且让用户搞砸了.
Plac看起来很酷,但你需要安装它.你的用户也是.
在软件工程方面,我喜欢遵循一个简单的规则:
保持简单和标准,在您真正需要时使用尖端技术.
应尽可能实现逆向兼容性.
然而,你只是鬼混,不打算分发你的工作,然后继续,flab的方式和使用flac;).
标签:python,command-line,argparse