質問: ストラッツ(struts)って本当にいいの? こんにちは、私はjsp、サーブレット、javabeans の仕様は理解しているのですが、最近strutsも見てみようと思い、挑戦してみました。使ってみて感じたこととしては。 1.こういう作り方をしているとシステムがどのような仕組みで動いているか深いレベルで理解できないのではないか?(サーブレットの作成はコンテナーが自動で行うみたいだし) 2.コンテナーが自動で様々なファイルをで作成してくれるのは業務効率アップにはなるだろうけれど、 その分プログラマーは、機械によって自動で書かれたコードは理解しずらいだろうし保守にはよい影響をあたえないのだろうか? 3.jspのカスタムタグをたくさん覚えないといけない 4.なぜ意味もなくフォームにクライアントからリクエストがあるたびに一度データを格納してアクションで使っているのか 5.アクションはなぜ必要なのか。実際コントローラーなのだからサーブレットでもよいのではないか? など悪い点ばかりに気がつき、いい点がうまく理解できませんでした。これらの疑問について業務経験のあるかた解答をあたえていただけないでしょうか
回答: なにを疑問に思ってらっしゃるのか、俺には痛いほどよく分かります(笑) 1.こういう作り方をしていると... そのとおりです。 でも実際のところ、『web開発』という仕事はitバブル期に一気に一般普及したものであるため、『理解できる人達だけの職人芸』であってはならないのです。 初心者プログラマーでも、ある程度のものが作れなければいけません。 サーブレットは少々固定観念の凝り固まりが強い傾向にはありますが、『職人以外には手も出せない』ようなシステムよりはマシなのです。 2.コンテナーが自動で様々なファイルを... サーブレットは保守自体も仕事を横割りする前提になっています。 自動生成されたコードを読むのは、『それができる』人の仕事で、一般の管理者はそこまで厳密な保守をする必要はないというわけです。 3.jspのカスタムタグをたくさん覚えないといけない 最近のプログラム言語は覚えなきゃいけないapiの数なんかも膨大です。 それに比べれば少ない方だし、カスタムタグの多さは拡張性の高さに繋がるもので、ある程度やむをえないところはあります。 4.なぜ意味もなくフォームにクライアントからリクエストがあるたびに... これも開発作業を横割りにするためです。 より深いフレームワークレベルのプログラムは上級プログラマーが組み、業務ロジックは一般プログラマーが作ることで、効率化を目指しているのです。 5.アクションはなぜ必要なのか。実際コントローラーなのだからサーブレットでもよいのではないか? これも4.と同じですね。 1人の上級プログラマーに過負荷をかけるより、1人の上級者と複数の初心者とで仕事を分担した方が効率が良いからです。 とまぁ、ここまでツラツラ書きましたが、実際のところこの回答ではあなたの不満は解消しないと俺は確信しています。 なぜなら、サーブレットは『経営者ウケするように作られたシステム』だからです。 市販のシステムパッケージというのは2種類あって、1つは『本当に現場のことを思って作られたもの』、そしてもう1つは『経営者ウケを狙って、現場の意見を無視して作られたもの』です。 実際のところ、システムパッケージに対してお金を払うのは、コンピューターの素人であることが多い『経営者』で、現実的には後者のシステムの方がよく売れるんです。 ようするに、『it経済というものは現場で回ってるんじゃなく、会議室で回ってる』わけですね(^_^; それが現実です。