こんにちは、私は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で質問しましょう!
似たような質問が見つかりました
- Java 問題作成のWebアプリの作り方を教えてください 1 2022/11/26 22:01
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- 会社・職場 今後の仕事について 閲覧ありがとうございます。 私は現在28歳の男性です。 自分が向いている仕事、続 3 2022/08/01 12:19
- 事務・総務 帳票類やデータがありません。法人成り。 解体業の会社で現場作業員 兼 事務員として勤めているのですが 3 2023/06/02 13:27
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- 宇宙科学・天文学・天気 AIが答えた方程式 1 2023/02/20 00:12
- 会社・職場 仕事のスピードに対する考えかた。 新卒で研修後配属され1ヶ月半です。 私は、ゼネコンの一般事務、経理 2 2022/06/12 20:04
- 大学受験 自己推薦書の添削や意見・アドバイスお願いします 2 2022/08/27 19:34
- その他(社会・学校・職場) 業務内容についてどう思いますか? 私は客先の仕事を下請けとして行うという仕事をしていますが、(客先の 2 2022/05/04 16:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今でも、TomcatとApacheの連結...
-
swingの使い方
-
「C#ができればJavaもできる」...
-
プログラミング言語について
-
Eclipseソース開発画面の行番号...
-
文字列に半角スペースがあるか...
-
この便利な時代に開発環境すら...
-
IISワーカープロセスが原因でCP...
-
vba クリップボードクリアにつ...
-
JavaとAndroidアプリ(Java)違...
-
MSFormsとは何ですか?
-
データベースのデータをTextBox...
-
Javaでのエラーについて
-
visual stadio 参照問題
-
待ち行列の実現ができません
-
java3dが動かない
-
VBAの「for i=1 to cells(…」...
-
javaのジェネリックスでTとEの...
-
gitでバージョン指定してダウン...
-
大学の授業のプログラミング、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseソース開発画面の行番号...
-
「C#ができればJavaもできる」...
-
今でも、TomcatとApacheの連結...
-
オブジェクト指向について
-
Mac、Javaのライブラリ追加場所...
-
プログラミング開発経験とは?
-
JAVAで開発するシステムの...
-
PowerBuilderの知識が必要です。
-
ファイルアップロード時の文字...
-
PL/SQLを使った開発について質...
-
JAVAを使って管理システムを構...
-
JavaMailを使う前のTomcatの設定
-
サーバサイドJavaの「べか...
-
この便利な時代に開発環境すら...
-
文字列に半角スペースがあるか...
-
TOMCATとANDROIDSTUDIOの違い
-
Javaでバッチ処理
-
コマンドボタンの文字が消える!
-
J2MEでUTF8ソースコードでコン...
-
dao,daoimpl,daofactory古い?
おすすめ情報