以前に、kabuという半分ネタのCLIツールを作ったことがあった。Goの手習いに、という目的もあったのだけど。
今でも月に一度は使うくらいの(自分にとっての)便利ツールなのだけど、このコマンドについて、「コマンドとしてあるべき姿」といった観点で、同僚からいくつか指摘をもらうことができたことがあった(「ネタにマジレスだけど......」と前置きしつつとても丁寧に添削してくれた :pray: )。
- 引数がない場合は標準入力から取ると良い
- いま標準出力に出してるようなメッセージは、標準エラー出力に出すと良い。そうすると他ツールとの連携がしやすくなる
-verbose
オプションを設け、それがonのときだけ出す、などとする
- 候補が見つからなかったときは、non zero exit statusで終わるのが綺麗
こうした指摘は大変ありがたい一方で、「そういう感性みたいなものは、どうやって身につけられたんだろう......」とも感じていた。なにせ kabu は完全に雰囲気で作っていたので...。。そういう経緯もあって、上記の指摘のときに一緒にオススメされたのだったかどうかは覚えてないのだけど、「UNIXという考え方」という本を読む必要性を肌で感じ、このたびようやく読んだ。
- 作者:Mike Gancarz
- 発売日: 2001/02/01
- メディア: 単行本
結果、まさに僕にとってドンピシャな本だったのでとても良かった。それだけじゃなく、現代の「マイクロサービス」や「アジャイルな開発」、「OSSエコシステム」や「ポータビリティ」といったところにも通じるたくさんのエッセンスがあるな、とも思った。やはりこういうところの思想・哲学のようなものは何年経っても色褪せないなーと。
続きを読む