[PHP-users 12456] Re: PHPとColdFusion の比較優劣

Katsuyuki Maeda php-users@php.gr.jp
Wed, 08 Jan 2003 19:39:02 +0900


 こんにちは。前田@nanetです。

 元記事の条件ですと、実際のところ構築にあたるスタッフの方の
層としてどちらが厚いかという話が支配的だと思います。

 ときおり、「PHPで開発したものはメンテナンス性が悪い」という批判を
聞くことがあるのですが、メンテナンス性は、実は言語に依存するのでは
なくて、開発時の体制によるのではないかと考えています。

 簡単に動かせる、汚くも書けるという性格から、書き捨て的に書いて
しまうと、一応は動くらしいのだけど手が付けられないシステムが比較的
簡単に構築できてしまいますし、実際、そうやって動いているシステムも
多いようです。

 サイト全体でのデータフローはシステムを設計する立場から言うと
非常に重要なのですが、デザイン要因によって、その辺りが台無しに
なってしまうこともあり、この点には注意が必要です。

 この要因による失敗パターンとしては、

 ・機能の設計、ページ分割をやった
 ・デザインのサンプルも作って紙ベースで了解をもらった
 ・各ページでの入力項目やデータベースへの入出力を分析した
 ・各ページ(スクリプト)間でのデータ授受方法の分析も行った
 ・コーディング開始
 ・一通り動くようになったので、エライ人に「この入力項目はこっちの
 画面に持ってきて」という様なことを言われて安請け合いしてしまう。
 ・既に大枠の構造は決まっているし、データベーススキームも決まっている
 ・セキュリティもデータベースの更新も無理やり

 という様なものがあります。見かけほど簡単にロジックはいじれない
ということをキモに銘じておく必要があるのだと思います。

 そういうことを予期して、最初からスパイラルモデルのつもりで、
「なんとなく動く」プロトタイプを作成したところで、そこから仕様を
おこしてシステム設計をやる筈だったのが、「そんなに簡単にできる
のだったら」ということでムリな要求を出されて、プロトタイプの改造
や拡張になってしまったという事例もあります。

 この辺りの雰囲気は、VB(Visual Basic)にも似ていて、

 ・「見かけで簡単にいじれそうに見えるものは作るのも簡単」
 という誤解が、外部仕様の確定を遅らせる。
 ・設計の時間が短縮される。あるいは削除される!
 ・コードの質が低下する。
 ・それでも一応動くものができあがってしまう。
 (これはPHPの強いところでもあります)
 ・そんな綱渡りなのに簡単に改造を求められる。

 という仕組みで、全くPHPに非はないのに(だってまがりなりにも
動いたのはPHPのおかげでしょ?)、「PHPで開発したものはメンテナンス
性が悪い」という批判につながっているんじゃないかという感じがして
います。

#後々いじれるように作るのと、決まってないのに作るのは
#似てるけど大きく違いますね。決まっていないことが決まってる。

-- 
Nagasaki Network Service (http://www.nanet.co.jp/)
 kei@nanet.co.jp <Katsuyuki Maeda> (http://www.nanet.co.jp/~kei/)
 keikuma@nantoka.com (for PostPet)
「終わらないプロジェクトはない。終わっちゃうプロジェクトはあるけど。」