こんにちは、私はJSP、サーブレット、JavaBeans
の仕様は理解しているのですが、最近Strutsも見てみようと思い、挑戦してみました。使ってみて感じたこととしては。
1.こういう作り方をしているとシステムがどのような仕組みで動いているか深いレベルで理解できないのではないか?(サーブレットの作成はコンテナーが自動で行うみたいだし)
2.コンテナーが自動で様々なファイルをで作成してくれるのは業務効率アップにはなるだろうけれど、
その分プログラマーは、機械によって自動で書かれたコードは理解しずらいだろうし保守にはよい影響をあたえないのだろうか?
3.JSPのカスタムタグをたくさん覚えないといけない
4.なぜ意味もなくフォームにクライアントからリクエストがあるたびに一度データを格納してアクションで使っているのか
5.アクションはなぜ必要なのか。実際コントローラーなのだからサーブレットでもよいのではないか?
など悪い点ばかりに気がつき、いい点がうまく理解できませんでした。これらの疑問について業務経験のあるかた解答をあたえていただけないでしょうか
No.1ベストアンサー
- 回答日時:
なにを疑問に思ってらっしゃるのか、俺には痛いほどよく分かります(笑)
1.こういう作り方をしていると...
そのとおりです。
でも実際のところ、『WEB開発』という仕事はITバブル期に一気に一般普及したものであるため、『理解できる人達だけの職人芸』であってはならないのです。
初心者プログラマーでも、ある程度のものが作れなければいけません。
サーブレットは少々固定観念の凝り固まりが強い傾向にはありますが、『職人以外には手も出せない』ようなシステムよりはマシなのです。
2.コンテナーが自動で様々なファイルを...
サーブレットは保守自体も仕事を横割りする前提になっています。
自動生成されたコードを読むのは、『それができる』人の仕事で、一般の管理者はそこまで厳密な保守をする必要はないというわけです。
3.JSPのカスタムタグをたくさん覚えないといけない
最近のプログラム言語は覚えなきゃいけないAPIの数なんかも膨大です。
それに比べれば少ない方だし、カスタムタグの多さは拡張性の高さに繋がるもので、ある程度やむをえないところはあります。
4.なぜ意味もなくフォームにクライアントからリクエストがあるたびに...
これも開発作業を横割りにするためです。
より深いフレームワークレベルのプログラムは上級プログラマーが組み、業務ロジックは一般プログラマーが作ることで、効率化を目指しているのです。
5.アクションはなぜ必要なのか。実際コントローラーなのだからサーブレットでもよいのではないか?
これも4.と同じですね。
1人の上級プログラマーに過負荷をかけるより、1人の上級者と複数の初心者とで仕事を分担した方が効率が良いからです。
とまぁ、ここまでツラツラ書きましたが、実際のところこの回答ではあなたの不満は解消しないと俺は確信しています。
なぜなら、サーブレットは『経営者ウケするように作られたシステム』だからです。
市販のシステムパッケージというのは2種類あって、1つは『本当に現場のことを思って作られたもの』、そしてもう1つは『経営者ウケを狙って、現場の意見を無視して作られたもの』です。
実際のところ、システムパッケージに対してお金を払うのは、コンピューターの素人であることが多い『経営者』で、現実的には後者のシステムの方がよく売れるんです。
ようするに、『IT経済というものは現場で回ってるんじゃなく、会議室で回ってる』わけですね(^_^;
それが現実です。
この回答への補足
みなさんすばらしい回答ありがとうございました。どの回答も非常に充実しており、みなさんにポイントをあげたいのですが、それはできないみたいなのでthe moonさん DQさん大変申し訳ありません。また機会がありましたら優先的にポイントを割り振らせていただこうと思います
補足日時:2006/03/31 01:30No.4
- 回答日時:
あなたが言っているのは、結局は「車輪の再発明」と同じことです。
深く理解できるから、JSPのカスタムタグのような複雑な機構は不要だから、リクエストパラメータをいちいちJavaBeanに押し込めなくてもよいから、サーブレットで何でもできるから、だから全部コーディングするのですか?
それではプロジェクトは成り立ちません。
Strutsのようなフレームワークは、毎回書かずにすむような部分を提供しているに過ぎません。中にはJSPのように、処理上は迂遠で重いだけのようなコードも含まれますが、それでもStrutsを選ぶのは、無駄な開発コストをかけないためです。
あなたはもしかしたら、Strutsよりシンプルな構造をベースにしたWebシステムを組めるかもしれません。
では次は?また0から組みますか?再利用するでしょう?
その再利用する部分は、結局Strutsと同じか、似たような機能の集合体になりませんか? ならなぜ、既にあるStrutsを使わないのでしょうか?
Struts登場以前は、各社から似たようなフレームワークが乱立していたのです。オープンソースでシンプル、かつ容易にカスタマイズ可能なStrutsが登場したことで、それらは結局駆逐されました。
駆逐されなくても、結局どこのプロジェクトでも、何かしらのフレームワークは使っていたでしょう。誰も、車輪(フレームワーク)を再発明(0から作り直し)したいとは思っていないからです。
No.3
- 回答日時:
参考書にあるような単純な画面をつくるだけならStrutsのメリットは生かせないでしょう。
ですが、実際の業務では何百という画面を作ります。
そのためにいちいちサーブレットを作っては手間がかかりますし、質問者様のように開発者がみんなサーブレットを理解してるとも限りません。
また、サニタイジングの問題もあります。
Strutsのタグは、多少なりともそこを吸収して、開発者の作業を軽減してくれています。
また、カスタムタグはJSPでスクリプティングを書くことを少なくしてくれます。
できればStrutsのコードを読んで見てください。
実際に使っていても気づかないようなことをしてくれています。
それを毎回開発する手間を考えると、かなりの効率アップになるんじゃないでしょうか。
No.2
- 回答日時:
その疑問点はもっともですので、その気づいた点を考慮に入れたフレームワークを作成してみてください。
例えばどのような形のがよいのでしょうか?
PHPは自由度がありすぎるので、JAVAの方がいいとか、その逆でJAVAでは敷居が高すぎるとか、いろいろ言われてそれぞれもっともなのです。
例えば、
1は、深いレベルで理解しなくても済むとも言えるのです。昔の人はアセンブラを知らずしてプログラムは語れないといいました。確かにそうでしょう。その後はCを知らずして、その後はJAVA、その後は…。
でも今のシステムをCで構築していたら膨大な時間がかかってしまいます。
逆に小さいものを作るならフレームワークは不要です。(当たり前ですが)
1つ経験者として言えるのが、struts(他のフレームワークでもいいです)というみんなと共通の約束事があると開発はスムーズに進みます。
でもその代わりルールも増えてしまうのです。
要は個々ではなく、全体としてとらえてみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iアプリを自分で作りたい!家計...
-
Javaでゲームコントローラーを...
-
eclipseでtomcatを使うには
-
Linux上でEclipseを使用してC++...
-
C言語の練習
-
「C#ができればJavaもできる」...
-
リアルプレイヤーの古い(以前...
-
Excel VBAマクロをマスターする...
-
MSFormsとは何ですか?
-
VBA(えくせる)ってなんでメン...
-
VC#とVC#.NETの違い
-
FLAが開かない
-
スキル高めのIT技術者になぜ左...
-
正規表現について質問です。 カ...
-
WEBプログラマーに進路変更した...
-
Javaでのエラーについて
-
Webアプリフレームワークの勉強...
-
vba クリップボードクリアにつ...
-
C#とDelphiの違いについて
-
意味が分からないエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseソース開発画面の行番号...
-
PL/SQLを使った開発について質...
-
オブジェクト指向について
-
この便利な時代に開発環境すら...
-
高度なPS3ソフトの作る上で...
-
Tomcatのバージョン違い
-
JAVAで開発するシステムの...
-
JavaMailを使う前のTomcatの設定
-
「C#ができればJavaもできる」...
-
デザインパターンは必要か
-
MacでJavaを…
-
Webアプリケーションを開発する...
-
Mac、Javaのライブラリ追加場所...
-
PowerBuilderの知識が必要です。
-
実務の参考書で
-
サーバサイドJavaの「べか...
-
OS作りについて
-
javaで社内システム
-
iアプリ作ってくれる会社、個人...
-
いきなりMojaviを導入してみた...
おすすめ情報