ソフトウェアの動脈硬化

今日仕事で、DirectXのID3DXMeshを調べるため、Cマガジンをもって行く。
そこで以前読んだ記事でプログラミングを行う上で肝に銘じておかなければならない記事を思い出したのでここに保存しておこう・・・


●「ソフトウェアの動脈硬化」
Cマガジン2005年 6月号 P16

 ソフトウェアのバグを修正するもっともシンプルな対処法は何でしょうか。それが発展、つまりソフトウェアの改良であることは明らかでしょう。しかし、これは改良の際に新たなバグを生じさせなければの話です。もし新しいバグを増やさずに済ませたとしても、その改良が失敗である可能性は依然として存在します。特殊ケースのすべてを考慮していなければ、あぶなっかしい改良をしてしまうかもしれません。本当はプログラムをその構造から変更しなければならないのに、あまりよく機能しないしかけを1つか2つ導入して仕事を中途半端にまとめざるをえないかもしれません(そう私たちの誰もがやっていることです)。いずれのケースにおいても、もしプログラムをメンテナンスしんくくしてしまったら次回の改良の際には作業を行うのが自分であれ他の誰かであれ、その変更が生み出す問題はそれが解決する問題よりも大きくなります。
 このような改良のしかたは、まるで未来に借りを作っているようなものです。いずれは動脈硬化を引き起こすでしょう。コードの柔軟性を失い、それを生かしておくためには高いコストが必要になります。事態が更に進むと、そうしたコードを改訂するよりも新たに書き起こした方が安くなります。こうなってしまうと、そのコードは死んだも同然です。

 メンテナンスする時のことを考慮して簡潔な記述を第一に心がけてコーディングすればコードの死を遅らせることは出来ます。そして、その後メンテナンス時にも同等の注意を払う必要が有ります。しかし、唯一の方法は定期的な調査とクリーンアップを行うための予算を組むことです。
 ごくごく少数の企業しかこうした取り組みを行っていないことを私は知っています。予防的なメンテナンスを改良に類する作業として評価する管理職となると、さらに数が少なくなります。


この記事が頭に残っていてPH3Dでもこのまま作業を進めるのは、ちょっと・・と感じています。
一度、見直さなければならない理由のような気がします。また、そういったことは仕事でもあったような気がします。結構、全体的に見直さなければならないので、今まで動作していたのに、大丈夫か判断に悩みました。あとから、考えると、大きな見直しは 正解だったと感じました。
 でも失敗することもありえると思いますが・・・
スポンサーサイト

comment

Secret

プロフィール

syarekoube

Author:syarekoube
しゃれこうべとあずいの2人によるブログです。
主にアクションゲーム制作について発表しています。
あと、数学の研究です。

カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

ブログ内検索
RSSフィード
リンク