- ベストアンサー
フレームワーク設計の学習方法とは?
- Javaのフレームワークや共通機能の設計について経験不足を感じている方へ、フレームワーク設計の学習方法についてまとめました。
- オブジェクト指向、デザインパターン、Jakartaプロダクト、J2EEなどのキーワードがある中で、フレームワーク設計を学ぶための切り口について考えてみましょう。
- アプリケーションアーキテクチャ設計とも呼ばれるフレームワーク設計の学習方法について、皆様のご経験をお聞かせください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
フレームワーク開発の経験はありませんが、個人的感想です。 >>フレームワークや共通機能となると、また違う経験や発想が必要な気がしています。 フレームワークは、開発アプリの基盤になりますよね。ですので、「このフレームワークは、そんな使い方は、想定していません。そのプログラムでは使わないでください。」って言うはめにならないように、拡張性・柔軟性を確保しないといけませんから、大変ですね。質問者の言われるように、通常のアプリ以上の経験・発想が必要でしょう。「経験不足」と感じるレベルで、そういう箇所を担当される場合、いろいろと苦労が予想されますね。 ちなみに、「Javaよりも100倍開発効率が良い(実際は、5倍から10倍か?)」ってことで世界的に成功したRuby on Railsを真似した、Javaのフレームワークが増えているそうです。「この新しいフレームワークを使えば、大変だったXMLの記述は全く不要。その他、いろんな修正やテスト、リリース準備、保守も楽チンになるよ」っていうような、「フレームワークで生産性100倍アップ!!」というウリ・目的を考えるのが最初ではないでしょうか? で、その大ホラ?を実現するために、いろいろと工夫するわけですね。でも、良いものは、そう簡単にはできないわけですし、質問者が仕事で作成すべきフレームワークには、納期もあると思います。なので、「不満もあるけど、今回はここまで!」っていう「見切り」がもっとも重要かもしれませんね。
その他の回答 (2)
- choconamacream
- ベストアンサー率44% (152/338)
Sun認定資格 Java認定資格 http://suned.sun.co.jp/JPN/certification/javamain.html よく、「SJC-A」なんてシステム営業向けの資格だし取得しても意味無いよ、みたいな意見が見受けられますが、質問文を拝見してみて、いきなり「SJC-P」や「SJC-WC」レベルの内容から入っちゃうと、そういう風になってしまうのかな、なんて思いました。 データベース関係においても、本来はJDBCなんてJ2SEからも利用することが出来るわけなんですが、「SJC-P」ではDrivermanagerクラスやexecuteQueryメソッドなどに関する問題は一切出ませんよね(出題範囲外です)。ところが、「SJC-A」ではJNDIやコネクションプーリングとはどのような技術なのかについての理解がないと、合格はおぼつきません。 上記の公式サイトからも分かるように、「SJC-A」っていうのは、「SJC-EA」も含めた全てのJava技術の基盤となっている部分ですから、資格取得は抜きにしてもやはりそこから入っていくべきであるように思います(個人的には)。 ここから下は全て、公式サイトからコピペしてきたものです。たとえ、資格を取得する必要がなかったとしても、体系的に学べれますし、SJC-WCに関しても、サン・エデュケーション・サービスとしては、あくまでSJC-P取得者以外は受験不可といっているだけであって、SJC-WCを先に勉強してはならない、とは言っていません(たぶん)。必要となる部分のみ、かいつまんで習得していくっていうのもありかと。 http://suned.sun.co.jp/JPN/certification/sjcaobj.html セクション 2 - UML 表記 セクション 6 - Java プラットフォームと関連テクノロジー セクション 8 - サーバーサイド・テクノロジー http://suned.sun.co.jp/JPN/certification/compobj.html Section 11 - J2EEパターン 【ちなみに、・・・】 もしかしたら、上記の内容でも期待した回答は得られないかもしれません。そうだとしたら、あとはやはり「業務知識への理解」ですね。こればっかりはJavaとかRubyとか.NETとかにかかわらず、どうしても習得に時間の要するものです。社外秘の内容を質問されても、恐らく誰も答えられないでしょうし、それ自体がルール違反になってしまいますからね。一つ一つ着実に、というアドバイスしかありませんが。
- lumba_lumb
- ベストアンサー率26% (4/15)
まずは、しっかりとした分析能力が必要かとおもいます。文章でもよいですし、 UMLなどのモデリング手法をつかってシステム構築の対象となるビジネスロジック を把握し、共通となるロジックやインターフェイスを抽出します。 そしてあなたが作るフレームワークや共通ロジックをを使って開発する開発者が開発しやすく、かつ直感的で処理の流れがわかるような仕組みがどのようにして実現できるかというかということを意識して設計すればよいかと思います。その際にデザインパターンなどのオブジェクト指向的な設計手法やオープンソースなどで提供されているフレームワークなどの考え方は参考になるかと思います。