2009-10-14-01-コメントフル・プログラミング - project-enigma

2009-10-14-01-コメントフル・プログラミング

>> Site top >> weblog >> 月別アーカイブ >> 2009年10月のlog >> 2009-10-14-01-コメントフル・プログラミング

最終更新日付:2013/12/31 07:36:24


コメントフル・プログラミング

2009 年 10 月 14 日

かれこれ4年前に、「コメントレス・プログラミング」というエントリを書いた。極端を承知で、ソースコードに記述するコメントに対するアンチテーゼをぶち上げてみたのだ。その思いは今でも基本的に変わっていない。しかし、この2年間で状況は大きく変わった。2007年6月〜2009年7月の2年ちょっとの間やっていた仕事で、陰郎は山のようにコメントを書くスタイルに変わったのだ。今回はそれについて書いてみよう。

最初に書いておくが、4年前に書いたエントリの基本的な考え方は今でも変わっていない。コンパイラはコメントをチェックせず、コメントとコードが正しく対応していることを保証するのは人間であり、人間は誤りをおかす動物である。コメントだけでコードを完全に理解するというのは現実的でない。コードの読みにくさを誤魔化すようなコメントが増えがちである。これらの考え方は今でも正しいと思っている。

陰郎がこの2年間でコメントを書きまくるようになったのは、まったく別の理由からだ。この2年間の仕事では、とにかく時間がなかった(いつものことだが)。だからいわゆる設計書を書く時間もなかったのだ。とあるシステムのリプレースに伴うソフトウェアの全面刷新だったが、先代のソフトウェアもドキュメントは(少なくとも『正しくて役に立つもの』は)皆無といっていい状況だった。だからドキュメント類を整備するだけの時間も予算も人的資源も割り当てられはしなかったのだ。それについて恨みつらみを並べるのはよそう。そういった意趣は全部陰郎が地獄へ持っていく。陰郎の仕事は、とにかく何とかすることだった。

ドキュメントというのは、要するに設計書だが、これはコメントよりもさらにコードから遠く離れている。コードを直すときはコメントを追従させるのを忘れる可能性があるが、ドキュメントの修正を忘れる可能性はもっと高い。しかし、何も作らないわけにはいかないし、だからといって(最終的には)システムとまったく同期のとれていないドキュメントを作るというのもやりたくない。

この問題をなんとかするために利用したのがコメントだった。コメントの書式を定めておき、それに従ってコメントを記述する。ソースコードを処理するスクリプトを作っておき、それを実行することで HTML 形式のドキュメントを生成するようにしたのだ。もちろん同じようなことをする便利なツールがたくさん存在することは知っている。しかし、自分がやりたいことに完全にマッチするものがなかったため、結局自作することにした。結果はといえば、システムの全ソースコードの 50% がコメント行という状態になった。

この方法は確かにドキュメントとコードの距離を縮めはしたが、同期の問題は解決されていない。また、これによって生成されるのは大まかにいって関数および構造体のリファレンス以下の情報だけなので、より上位の設計については別のテキストファイルに記述して同じツールで HTML を生成した。こちらは距離の問題についても解決されていないが、同じソースコードツリーの中に置くことや、Microsoft Word などのバイナリ形式を使わずにデータをプレインテキストで管理するというメリットを選択したわけだ。色々問題は残っていたにせよ、あの状況でできる限りのことであったとは信じている。そして、2年間そのやり方で必死で書き続けた結果、今となっては個人的な開発作業にもそのスタイルが持ち込まれてしまった。今や陰郎個人のソースコードもコメントだらけである。

あの仕事は C 言語だったので、それに完全にロックインした作りになっていたが、できることなら C++ にも対応できるようにしたいものだ。しかし、クラスの概念やオーバーロードなど、一筋縄ではいかない要因が山ほどある。これも「やりたいけど多分やらない」という箱の中に放り込まれて終わりになるのだろう。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : 開発

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.