« プログラミングの話(11) | Main | プログラミングの話(13) »

July 16, 2013

プログラミングの話(12)

プログラミングが好きな人は、プログラムを書く前の段階で設計書を書くのが大嫌いだが、書き上がったプログラムをみんなでレビュするのはもっと嫌いだ。

ソースレビュという作業はホントに憂鬱だ。ソースレビュとは、プログラムをプログラム設計書どおりに作っているかどうかを確認する作業である。つまり前提として、プログラム設計書は正しく、プログラムは閒違っているかもしれないからレビュするのだ。もちろんプログラム設計書は、機能設計書の詳細化として妥當かどうかのレビュを濟ませている。だから、プログラム設計書よりもプログラムの方が正しいと主張することは出來ない。そのためにレビュ中は幾度となくイラっとしてしまう。

プログラム設計では、機能設計書の詳細化として、モジュール構成圖、モジュール一覽表、モジュール設計書(モジュールを關數と讀み替えることもある)を作成する。開發したことがある人なら分かると思うが、機能の中身というのは他の機能に影響しない、性能をスポイルしない範圍で自分の自由に考えることが出來るはずだ。しかしレビュの場では、モジュール構成が分かりにくいだの、機能名とかけ離れた構造に見えるだの、處理手順が分かりにくいだのと、レビュアはまるで審査官にでもなったように無遠慮なコメントをしてくる。プログラム設計レビュの段階からそういう狀態なので、ソースレビュになればさらにその傾向が顯著になる。

もし彼らに分かりやすいプログラム設計書やプログラムを書こうと思うなら、途中で何をしているのか分からなくなるくらいベタベタに書かないといけないのだが、そうするとプログラムステップが增大して、單體試驗項目が增えてしまう。たとえば「if文の條件式に關數呼び出しを書くと分かりにくくなるから、手前で關數を呼び出して結果を變數に格納し、その變數をif文の條件式で判斷するよう修正してください」というお決まりのコメントをされる。「何が分かりにくいの?」と聞くと「if文の條件式は變數と演算子だけの方が單純だから。あと知らない人が見ても分かりやすい」と言われる。單純な方がよりベターだという考え方だ。單純を好む人は、ひとつのモジュール(關數)がどれだけ巨大になっても何とも思わないので、ときに化け物のようなプログラムを平氣で書く。

もちろん分かりやすいプログラムを書くのは、保守性や移植性にとって重要なことだ。しかし、1行1行に至るまで誰にでも分かるように單純に書くというのは、あまり行き過ぎるとかえって何をしているのか分からなくなる。處理を細切れにするにはそれだけ無駄に多くの變數を定義し的確に使用する必要があるからだ。

|

« プログラミングの話(11) | Main | プログラミングの話(13) »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/74224/57805596

Listed below are links to weblogs that reference プログラミングの話(12):

« プログラミングの話(11) | Main | プログラミングの話(13) »