現在関わっているプロジェクトで、他人の書いたコードをメンテナンスすることがしばしばあるのだが、あまりにもメンテナンスが考えられていないようなコードで修正箇所の把握に時間がかかった上に修正箇所の把握ミスでさらなる修正という事態になってしまい、業を煮やして怒りをあらわにするようなことがあった。コーディングを行うときは、メンテナンス性を考えなければならないと言える。
今日において、一般に、ソフトウェアの開発は一人で行うことは小規模な場合や個人を除けばなく、複数人で開発を行うことが主流である。自身が関わった部分でも、いずれは誰かに開発を引き継ぐことが求められることも少なくないし、自身がコードについていつまでも覚えているとは限らないので、知らない人でも読めばある程度の修正が可能なようにしなければならない。
修正しやすいコードというのは、それこそある画面で項目を並び替えたいときに、1箇所をいじればすぐに修正が反映されて、しかも問題なく動作するというようなコードである。他にも項目追加なら適切な場所に追加・削除すればOKというようなコードである。
例えば、「名前、住所、メールアドレス、電話番号」という順番で並んでいる設定画面があった場合、「名前、メールアドレス、住所、電話番号」という順番に入れ替えたい時には、UIの順番を定義している配列あるいはそれに類するオブジェクトをいじるだけで順番が正しく反映されるというようなものである。
それができるようにするためには、オブジェクト指向の考えを持って設計を考える必要がある。
今回私が遭遇した件では、それが全く考慮されていない状況にあり、本来なら名前や住所といった項目を前提として、それに応じてタイトルやプレースホルダー、バリデーションルールなどを定義する必要があるものなのに、そうなっておらず、タイトルやプレースホルダーが起点となっていて、しかもマジックナンバーになっている有様という修正が非常に面倒なものに遭遇してしまった。
ひとまず、難航はしたものの、コードを特定して早急に改修はできたものの、今後間違いなく禍根になる状況にあるわけで、時間をかけてでも書き直さなければならない状態なのだが、どうにかならないだろうか・・・。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。