導入
10章42回、お疲れさまでした。「タスク管理アプリ」というたった1つの題材を、Entity・値オブジェクト・Factory・Repository・Service・ViewModel・Viewという実務のレイヤー構成に沿って、最初から最後までTDDで作り上げました。最後に、このコースで身についたことと、次に進むとよい方向を整理します。
説明
このコースで手を動かしたことを、もう一度並べてみましょう。
- TDD: Red(失敗するテスト)→Green(通す最小実装)→Refactorのリズムで、Entity・Factory・Repository・Service・ViewModelのほぼすべてを作った
- レイヤーの分離と依存の向き:
app.support(何にも依存しない)を中心に、Repository・Service・ViewModel・Viewが外側から内側へ依存する構造(レッスン39) - DIとFake/Mockito: コンストラクタインジェクションで依存を外から渡し、テストでは本物の代わりにFakeやMockitoのモックを差し替える
- MVVM: View(FXML)とViewModel(普通のJavaのクラス)をバインディングでつなぎ、ロジックを画面から切り離す
- 仕様変更への対応: 新しい要望が来ても、役割分担を崩さずに機能を足せる(第9章・レッスン40・レッスン41)
次に学ぶとよいこと
- 本物のフレームワークでDIとレイヤー構成を体験する: このコースでは手動でDIを組み立てましたが、Springコースの「依存性注入(DI)― Springの心臓部」や「レイヤ構成 ― Controller/Service/Repositoryの役割分担」は、本コースと同じ考え方を、実際のWebアプリケーションのフレームワーク上で体感できる内容です
- デザインパターンをさらに深める: このコースでもFactory・Command・Strategy(
Commandインターフェース)に触れましたが、Javaデザインパターンコースでは、それ以外の定番パターンを1つずつ、なぜ必要かという動機から学べます - 同じ題材をC#/WPFで比較する: このコースの姉妹コースとして、全く同じ「タスク管理アプリ」をC#とWPFで一から作るC# MVVMコースがあります。言語やUIフレームワークが変わっても、MVVM・TDD・依存性逆転という考え方そのものは変わらないことを確認できます