# CLI batch のオプション設計について {{tag: development, cli}} CLI batch の類の話である。CLI tool だとまた違った話になる。 さて、CLI batch のオプション設計でよくもめるのは、テスト実行する機能をつけるとき、--dry-run とするか、--execute とするか、どっちをデフォルトとするかという点である。ある人は無闇に実行したがって平和を乱しがちだし、ある人は安全に倒したがって手間を増やしがちになる。プロジェクトの中で、この設計がぶれているのも毎回オプションを確認しないと怖かったりするのでよろしくない。だいたいは、リーダーのポリシーにしたがって手間か安全のいずれかに寄せた方針になっていることが多いが、自分は、実行内容によって適宜判断するのが良いと考えている。 個人的経験則に基づいているので、もっとベターな方針があったら教えてほしいが、自分の場合は、以下のような方針がいまのところベストだと思っている。 まず、判断の根拠は、実行結果が影響なく、簡単に元に戻せるかどうかである。簡単に元に戻せるなら --dry-run をオプションとして、オプションなしで叩いたらいきなり実行で良いと思っている。楽だし。反対に、実行結果の巻き戻しが困難なバッチは、--execute をつけて、明示的に本実行をするのが良いのではないかと。ただ、--execute 方式だと、何もオプションが付いてない場合がドライランだとは信じられず、そのことに恐怖を感じ、オプションを毎回確認してしまうという丁寧な人もいるので、--dry-run という明示的なオプションを書いてドライランだという書き方もできるようになっているとさらに心の平静が得られる。もっと言えば、--dry-run となっていれば、--execute 付けてもドライランになってくれれば安全寄りのマネージャーも納得だ。 つまりこうなる。 * --execute 付の場合のみ本実行 * --dry-run と書いてあれば、いつでもドライラン * --dry-run とついていれば、--execute があってもドライラン ばちーん、ばちーん