今までPHPとaction scriptしか触った事がありませんでした。
最近、GAEに興味が出てきたので、どうせならJAVAを覚えてみようと思っています。
eclipseを使いGAE上でjavaを動かす所までは出来ました。
JAVAモJSPとサーブレットの基本的な動きは大体覚えました。
しかし、GAE/Jを調べているとslim3を使った方が良さげのようでしたので、
slim3公式(http://sites.google.com/site/slim3appengine/)の「Getting Started」を参考に勉強していたのですが、
TESTやコントローラーの箇所がよく理解できませんでした。
フレームワークを使った事がないので、フレームワークの基本的な動きが理解できていないだと思っています。
最終的にはslim3を覚えたいのですが、その前に読んでいた方が良い本や勉強法があれば教えて下さい。
その他、JAVAを覚えるあたりお勧めがありましたら教えて下さい。
Javaの勉強法、を尋ねていらっしゃる、と理解して私のオススメを回答します。
(1)
Javaの入門本など(私は独習Javaでした)を、斜め読みしながら、テキストエディタ(秀丸とか)でjavaファイルを書いて、DOS窓からjavacを叩きます。
→コンパイラとはなんぞや、クラスファイルとはなんぞや、実行する(javaする)とはなんぞや、って事を把握してください。
(2)
サーブレット+JSPの本など(私はコア・サーブレット&JSPでした)を斜め読みしながら、テキストエディタ(秀丸とか)でjavaファイルを書いて、DOS窓からjavacを叩きます。
→サーブレットで出来ること、JSPで出来ることを把握してください。
(3)
簡単なwebアプリケーションを作ります。MVCを意識して。
→JSPで行うべき事、サーブレットで行うべき事、モデル層で行うべき事。役割分担を意識してください。
(4)
いままで書いてきたソースを、Eclipseにインポートして、統合開発環境の便利さを実感してください。
(5)
テスティングフレームワーク、ロギングフレームワーク、webアプリケーションフレームワーク、の使い方を学んでください。デザインパターンを学んでください。
slim3はまだ始まったばかりなので、情報が少ないのかなと思います。S2ならばある程度枯れた技術なので、情報も多いです。S2でDI+AOPに触れれば、slim3への移行は楽なのかなと。
この頃、slim3を使いこなすことが出来るんじゃないかな?と思います。
(一口にフレームワークと行っても、ナニナニフレームワーク、で各種あります。また、Eclipseもフレームワークと言えます。slim3はwebアプリケーションフレームワークですね。)
このように遠回りして欲しい理由は、汚いコードを書いて欲しくないからです。
いきなりEclipseを使い始めると、スパゲティのような、読みにくい、自動テストできないソースコードを書きやすいからです。実際の現場にはそのようなソースが存在し、バグの巣窟、テスト工数爆発の原因になっています。
参考になれば嬉しいです。
リファクタリング―プログラムの体質改善テクニック (Object Technology Series)
コア・サーブレット&JSP―Javaサーバ技術によるWeb開発
Seasar2によるスーパーアジャイルなWeb開発 (WEB+DB PRESS plusシリーズ)