CUI( Commandline User Interface / Console User Interface / Character-based User Interface )のデザインガイドラインです。趣味や仕事で作成するコマンドラインベース(コンソールベース)のツールのユーザインターフェイスのデザインガイドラインあるいはその叩き台としてご利用頂ければ幸いです。
『こーゆーのもあったほうがいいんじゃないか?』『ここはこーしたほうが』等々のご意見があれば ML や BBS でお知らせくださいまし。
エラーは標準出力でなく、必ず標準エラーに出力するようにしましょう。標準出力と標準エラーが正しく使い分けられていればログの活用方法も広がります。
ヘルプは使い方が分からない人の為のものなので、ヘルプのコマンドライン引数はより多くの形で提供すること。 具体的には "-help", "/help", "-h", "/h", "-?", "/?" で表示されるようにすること(大文字小文字は区別しないこと)。 また、その他のコマンドライン引数の構成上問題がなければ不明なコマンドライン引数が提供された場合や、なにもコマンドライン引数がない場合にもヘルプの表示もしくはヘルプを表示する為のコマンドライン引数の表示を考慮すること。
ユーザが始めて初めてそのコマンドを使用する時に誤ってなにかを実行・処理してしまう危険性があるので、ヘルプのコマンドライン引数として使われそうな指定にヘルプ以外の意味を持たせないこと。
類似するコマンドのユーザインターフェイスに準拠していればユーザフレンドリになり、また、類似するコマンドと簡単に差し替えて使えるなどの利点が生まれます。
パイプが利用できればそれだけ便利になります。
パイプを併用している場合にどのコマンドが出したエラーかわからなくなるのでエラーにはコマンド名を含めること(パイプでの利用がありえない場合はこの限りではない。)
文字だけの説明よりは図も交えた説明のほうが親切ですし、そのWEBページがサポート掲示板などに直結していれば非常にユーザの助けに・・・正に"ヘルプ"となります。 ただし、必ずしもヘルプWEBページにアクセスできるとは限らないのでヘルプWEBページを用意しても最低限のヘルプメッセージはヘルプオプションで提供すること。
バッチファイルなどから利用されるケースでは意味のある戻り値があれば、それだけ利便性が増します。
Windowsではデフォルトでは拡張子が表示されない為、ユーザには完全なファイル名がわからない可能性もあり、拡張子の補完などを考慮する必要がある。 ただし、その補完がなにか問題を起こしそうな場合は補完を控えること。また、予期せぬ問題を起こさないようにする為、補完は最小限に留めること。
ファイル名やその他の指定に対してワイルドカード/正規表現の適用を考慮する。