4

私が書いているツールのコマンド ライン インターフェイスを開発しようとしています。fabFabric のツールに似たインターフェイスと svn のコマンド ライン ツールに似たインターフェイスの間を行き来しています。

fabの使用メッセージ:

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

svnの使用メッセージ:

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

2つのオプションと(少なくとも私が使用しているもの)svnもサポートしていることに注意してください。--version--quiet

私の質問は次のとおりです。

  1. fab の cli (複数のコマンドがあり、それぞれに引数を指定できる) の設計は、コマンドライン ツール間で共通ですか? 私には、svn ツールの cli がより一般的に使用されているようです (確かではありません)。
  2. plac (または argparse)を使用して fab の cli を実装するのは簡単でしょうか?
  3. svn の cli を使用することにした場合、これを plac を使用して実装できますか? 私は plac が好きですが、サブコマンドの代わりにツールにオプションを直接追加する方法がわかりませんでした。argparseを使用して確実に実装できます。

PS: fab の cli が私にとって魅力的な唯一の理由は、1 つのステップで複数のタスクを実行できることですが、実装の容易さが私の主な関心事です。

4

1 に答える 1

4
  1. Subversion の方法はより標準的です。
  2. おそらくそうではありません。
  3. 手斧でバターを切ることができます。

ドキュメントと使用法を簡素化したい場合は、SVN の方法を使用してください。fab の方法が魅力的である理由はわかります。プログラマーにとっては理にかなっています。しかし、実際には複雑で、ユーザーにとってはめちゃくちゃです。

Plac はクールに見えますが、インストールする必要があります。あなたのユーザーも。

ソフトウェア エンジニアリングに関しては、単純なルールに従うのが好きです。それは、シンプルかつ標準的なものに保ち、本当に必要なときに最先端のテクノロジを使用することです。可能な場合は、レトロ互換性を実現する必要があります。

しかし、あなたはただふざけていて、自分の作品を配布するつもりがないのなら、続けて、フラブのやり方で flac を使用してください ;)。

于 2011-07-06T02:15:23.630 に答える