【前回振り返り】
前回の記事は以下、今回は課題(?)についてのアクションをして行こうと思います。
https://qiita.com/lunalice/items/26a1690101172f70eda7
先人の知恵を借りてPlayFramework2.6の環境構築が完了したので、
今回は足りない知識のキャッチアップを行う。
前回悟ったが先人の知恵を借りてコード読み取って動作を確認して・・・となると学習スピードが鈍足だと感じたので今回使用したのは以下参考書。
【参考書】
Play Framework 2徹底入門 JavaではじめるアジャイルWeb開発
この手の参考書ってバージョン上がると全く使い物にならなかったりするので、
初版が2013年ってちょっとやばいかもと思いつつ手にとったが全くそんな事はなく、ためになる内容でしたので凄くお勧めします。
そんな中で前回やった事は無駄ではなく、ギャップをあげるとするなら初期SBTをダウンロードしてplayseedを展開して・・・という内容がplayをインストールしてplay runして・・・という所以外は今の所感じてないです。
ちなみに前回やった所は以下リンクを参考にすれば私の記事よりわかりやすいので是非参考までに(英語出来ない方は翻訳すれば読める内容になってます。
https://www.playframework.com/documentation/2.6.x/Installing
【本題に入る前に】
Qiitaをやってバシバシ情報発信してる方的には今更な感じですが、
MVCアーキテクトを知ってますか?
といっても私も書籍とかでチラッと見たり詳しいわけではないので概念だけで言うとWEB開発のベースとなっている(と思っている)開発手法の一つで、他に派生してMVPとかMVVMとか派生とかじゃなくて別の手法とかあると思いますが今の私の中にあるのがMVCなのでこちら主体でまとめます。
MVCって何の略?と言われると以下になります。
Model
View
Controller
WEBアプリにおけるそれぞれに役割を決める事で作業分担と頭の中を整理して効率よく開発出来るねって簡潔に思ってます。その為いろんな手法が出てきてるんですねきっと。
ModelはWEBアプリにおいてメインロジックを操作する役割になってます。
DB周りのCRUD(クアッド)とかをメインに扱ったりします。
Viewは今見てる画面そのものです。前回のWEBアプリを作成した時はJSPが担当していた部分となります。
Controllerは画面遷移の操作を行います。Viewからフォームデータを受け取って入力データを判定しエラー画面返したり、正常画面を出力したりします。前回のWEBアプリではサーブレットが担当していた部分になります。
なぜ行き成りMVCの話になったかというと、JSPやサーブレットを使用してないが、PlayFrameworkはMVCアークテクトという手法で開発が行われるフレームワークだからです。(やっと言えた・・・
【本題】
本題といいつつまだまだですが、以下前回生成した環境をtreeして一部削ったものです。
├─app
│ ├─controllers
│ └─views
├─conf
├─gradle
│ └─wrapper
├─logs
├─project
├─public
│ ├─images
│ ├─javascripts
│ └─stylesheets
├─target
└─test
└─controllers
先ほどのMVCの解説からなんとなく察せると思いますが、appフォルダ配下にjavaって行く事をPlayFrameworkで開発するといって差し支えないでしょう。ちなみにModelは初期ないのでappにフォルダ切って投入して行くつもりです。
もう一つPlayFrameworkで弄らないといけないファイルがあり、それはconfフォルダにあるroutesファイル(+application.conf)です。
GET / controllers.HomeController.index
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
中を見て見ると何か見覚えがありますね?
サーブレットJSPの時やったGET、POSTのリクエスト定義みたいなもので上記フォルダに格納されてるjavaのindexメソッドを呼ぶ。って感じになってます。
依存関係を上げると
routes⇒controller(メソッド)⇒view(コントローラーから値受け表示)
こんな感じModelはcontrollerがnewしたりメソッド使ったりという流れ。
今回はものを作ってないのでここまで。
(本当はscalaとjavaのギャップを書き書きしたかったが・・・
【後書き】
平日はpaizaとかでスキルチェック(軽いの
土でスキルチェック(重いの
日で本読みつつ開発してQiitaアウトプットってそこそこ大変。
何が一番大変って買った参考書為になるけど500ページくらいあってまだ読みきれてなく作っていこうってなってない所(だから開発記事になってないんだけども
これからやっていこうと思った方がいたなら、入門書として読むなら薄ければ薄い方がいいと思う。例えばないと思うけどJAVAやりたい!⇒黒本ズドンとかだと面白みがなさ過ぎて飽きちゃうと思うんですよね。それでもいけるっていう方もいるかもしれませんが人生モチベーションが全てなのでとりあえず薄い本がーって読む(+やって見る)もう少し詳しくなりたいなら分厚い本読むとか多分こんな流れがいいと思う。
私はとりあえずpaizaでスキルAになるまでこんな感じで進めようと思います。平日A問題やると嵌ると時間が消し飛びそうなので休日使わないとあかん・・・