TOPシステム開発> 【新・言語進化論】言語選択の分かれ道> 第4回:Webアプリケーション開発にPerlを選んだワケ (3/3)

【新・言語進化論】言語選択の分かれ道

【新・言語進化論】言語選択の分かれ道

第4回:Webアプリケーション開発にPerlを選んだワケ

著者:TIS 川島 義隆

公開日:2007/11/22(木)

3. 修正の途中で別の問題を見つける(修正する)

保守開発の現場で今動いているプログラムを書き換えるのは善か悪か。特にSIの現場においては、難しい問題となります。

筆者はSIerにとって保守開発とは、医者の仕事に近いと思っています。ある箇所を修正しようとして、開腹してみると別の病巣を発見することはよく聞く話です。このとき医者は、インフォームドコンセントとして、患者もしくはその身内に状況を伝え、合意の下で対策を打ちます。

よってSIerにおいても見つけた問題に対してフタをしたい気持ちに打ち勝ち、しかるべき意思決定者に正しく伝え、相談し対応を決めるべきです。また、問題の軽重にもよりますが、できれば早期治療を行いたいところです。それが結果として将来のトラブルを防止することが実際によくあります。



既存のソースコードのマズイ臭いを嗅ぎとり、プログラムとしての挙動を変えずに体内洗浄を行うことをリファクタリングと呼びます。これはテストコードがあることがその前提です。したがって、保守開発の中でリファクタリングを行う場合、あまり手を広げるとテストが追いつかずバグを作りこんでしまうことになりかねません。本当にマズイところに絞って実施するサジ加減が肝要です。

おそらく「再利用のためにモジュール分割する」という見方が世間では多いと思います。同じように「テストをするためにモジュール分割する」という観点で考えてください。既に作られたアプリケーションに対して、これを適用していくのは骨が折れる作業ですが、必ず効果はあらわれてきます。

Webアプリケーションの場合、通常はMVCモデルに従って設計されていることが多いと思います。中にはビジネスロジックとビューが分離されていないものもあるでしょう。こうした一体型のアプリケーションでは、テストコードが書きづらくWebブラウザからのテストのみが基本となってしまいがちです。そのようなときに、たとえ共通の処理でなくても、ビジネスロジックをサブルーチンとして切り出せば、テストコードを書けるようになります。

Perlにおけるテスト文化は歴史が長く、古いバージョンのPerlでも標準でテスト用のパッケージが含まれています。古くはTestというそのものの名前が使われていましたが、最近のバージョンでは「Test::More」を使うのが一般的です。これを利用すれば、テストをサクサク書き進めることができます。

最後に

言語選択の分かれ道というよりも、選択後の分かれ道という内容で書かせていただきました。私自身Perl以外の複数の言語でもWebアプリケーションの開発・保守を行ってきましたが、最近では特に開発言語による違いはほとんど無くなってきたと感じています。ライブラリの充実、使いやすいフレームワークの存在、コミュニティの勢い、どれをとっても遜色ありません。

そうなると構築実績や開発要員が現時点で確保しやすいかだけで選択しがちですが、それは短絡的であると思います。Webアプリケーションは使われていく中で成長し、継続して使われることによってビジネス価値を生み出すものです。したがって、どう速く作るかよりも、どうシンプルさを保っていけそうかに重きをおいて、これからの開発言語やフレームワーク選定とアーキテクチャ設計を考えていくことがより強く求められるようになるでしょう。

次回は

「言語選択の分かれ道」の最終回では、ポータルサイトのサービス開発でPHPを選択したワケを紹介する。また、連載の締めくくりとして言語選択のもう1つのポイントを解説しよう。 タイトルへ戻る




TIS株式会社 川島 義隆
著者プロフィール
TIS株式会社 川島 義隆
SIの中の人として、数年来、主にコンシューマ向けWebアプリケーションの開発に携わっている。最近叩かれることの多いSIerであるが、それを喜んでくれる誰かの為にプログラムを書き続ける仕事も悪くはないと思っている。
http://www.tis.co.jp/


INDEX
第4回:Webアプリケーション開発にPerlを選んだワケ
  華やかな世界の裏側で
  1. ソースコードを書かないようにする
3. 修正の途中で別の問題を見つける(修正する)