ツール作りの心構え

仕事で使うツール作りが楽しくて仕方ありません。
自分一人が使うのではなく、他人が使ってくれるっていうのが一番うれしいです。バグを仕込んでしまって修正をせっつかれると、冷や汗をかきながらもワクワクしてしまいます。要求された機能を追加したり、動作が遅いときは改善するよう修正したりして、その結果に対して「ありがとう」と言われると、もうそれだけで感動ものです。
ただ、少しづつですが、自分が使用するためのツール作りと、他人が使用するためのツール作りでは作り方を変えた方がいいということに気づいてきました。
自分で使う場合、エラーが起こりそうな使い方はなるべく避ける、又はエラーが出ても原因がすぐに特定できるのでエラーチェックは適当でかまいませんが、他人が使う場合はそうではありません。コンソール上に「error」という文字を吐き出していたとしても、エラーが出たとは気づかない場合が多いです。ましてや、エラーが出たの、メッセージだけ出力してその後の処理を続けるなんて問題外です。
また、汎用的だったり、自由度が高いと逆に使いにくいようです。一つのツールで何でもできてしまったり、設定ファイルに多数の設定項目を設けると、使用者は結局何をすればいいかがわからず混乱してしまいます。
これらを踏まえて、今後のツール作りの際に心がけようと思っていることは以下のようなことです。

  • エラー発生時は動いているプログラムを終了する
  • エラー発生時はその原因を、日本語で、なおかつ目立つように表示する
  • 同じような機能のツールでも、実行ファイルはわける
  • (上記とは逆に)同じような機能なら一つの実行ファイルにまとめ、動作は内部で自動判定する
  • 一つのツールに渡すパラメータは1つにする。多くても3つにする

これらに注意してツールを作るのは若干手間がかかりますが、エラーの原因を調べに出向いたり、使い方を手取り足取り教えるようなことが減ることを考えれば、長期的に見て作業量は少なくなるのではないかと期待しています。

そんなこんなでツール作りに勤しんでいたところ、本業のデータ打ちのほうがおろそかになってしまい、久々に終電ダッシュをしてしまいました。今週も残り二日。明日は本業に集中して、空いた時間でいろいろツール整備をしたいものです。