ドキュメントが動作するということ
最近プログラム開発のお仕事をしている。で、Excelとかでいろんな設定を書くのね。いわゆる設計書みたいなの。それが一旦英語に直されるわけ。理由はといえば、ソースコードは英語で書くものだから。というか、命名規則とか正規表現による検索ができるとか、英語の方があとあと保守がやりやすいらしい。
でも日本語で書かれていないコードは、分からないんだよね。読んでも。なので、
//設定ファイル(CSV)を読みます。 using (StreamReader sr = new StreamReader(configCsvFilePath, Encoding.UTF8)) { while (!sr.EndOfStream) { //処理... } }
とか、まあコメントを入れることになる。設計書に書かれている専門用語を、コメントで1行1行書かれることもあり、読みにくい。
つーことでプロパティ化
/// <summary> /// CSV形式で記述された設定ファイルです。 /// </summary> public ConfigCsvFilePath { get { return configCsvFilepath; } }
すると、上のコードはCが大文字になるだけなんだけど、ポップアップで内容が把握できるようになる。たとえば、ConfigCsvFilePathのように、マウスを上に乗せると解説が出るのだ*1。
となると、コメント行が減るわけだ。うれしい限り。コード行数で生産性把握!とかやってる会社は困るかもしれないが。
どうせコメントだし。
しかし、こんなコードの断片どうやって埋め込むんだ!という人もでるでしょう。
そりゃあそうだよね。
簡単には、ExcelからCSVをはき出して、コード自体を作ってしまえばいいのです。
もともとコード自体自動生成するから、埋め込みしないといけない!という人に関しては、対象のプロパティが1行1つ出てくるように、改行をうまく削った上でプログラムで文字列解析をおこないます。あとはそれぞれの行の先頭にコメントと改行を追記すればよいわけです。適当な区切り文字に改行を追加しておくと、エディタが自動で整形してくれますし。
こういうちょっとしたツールを組み合わせることで、今まさにやってる仕事にあるような形で、オーダーメイドな自動化をめざそうとするのがマイブームです。トヨタ的に言えば、いわゆる「からくり」というやつですな。
*1:FireFox 3.0.1とInternet Explorer 7.0.5730.13にて動作(笑)確認済