1.2. このドキュメントが示すこと¶
本ガイドラインではSpring、Spring MVCやMyBatisを中心としたフルスタックフレームワークを利用して、 保守性の高いWebアプリケーション開発をするためのベストプラクティスを提供する。
本ガイドラインを読むことで、ソフトウェア開発(主にコーディング)が円滑に進むことを期待する。
1.3. このドキュメントの対象読者¶
本ガイドラインはソフトウェア開発経験のあるアーキテクトやプログラマ向けに書かれており、 以下の知識があることを前提としている。
- Spring FrameworkのDIやAOPに関する基礎的な知識がある
- Servlet/JSPを使用してWebアプリケーションを開発したことがある
- SQLに関する知識がある
- Mavenを使用してWebアプリケーションをビルドしたことがある
これからJavaを勉強し始めるという人向けではない。
Spring Frameworkに関して、本ドキュメントを読むための基礎知識があるかどうかを測るために Spring Framework理解度チェックテストを参照されたい。 この理解度テストが4割回答できない場合は、別途以下のような入門書籍で学習することを推奨する。
1.4. このドキュメントの構成¶
- アーキテクチャ概要
- Spring MVCの概要や、Macchinetta Server Framework (1.x)の基本的な考え方を説明する。
- アプリケーション開発
- Macchinetta Server Framework (1.x)を利用してアプリケーション開発する上で必ず押さえておかなくてはならない知識や作法について説明する。
- Webアプリ開発機能
- Webアプリケーション開発で必要となる機能をどう実装するか、何に気を付けるべきかを説明する。
- Web Service
- Webサービス開発で必要となる機能をどう実装するか、何に気を付けるべきかを説明する。
- データアクセス
- データアクセス機能をどう実装するか、何に気を付けるべきかを説明する。
- アプリケーション形態に依存しない汎用機能
- アプリケーション形態に依存しない汎用機能をどう実装するか、何に気を付けるべきかを説明する。
- メッセージ連携
- メッセージ連携機能をどう実装するか、何に気を付けるべきかを説明する。
- セキュリティ対策
- Spring Securityを中心としたセキュリティ対策について説明する。
- 単体テスト
- Spring Testを利用した単体テストについて説明する。
- チュートリアル
- 簡単なアプリケーション開発を通して、Macchinetta Server Framework (1.x)によるアプリケーション開発を体験する。
- Appendix(Know How)
- Macchinetta Server Framework (1.x)を利用する場合の付加情報を説明する。
1.5. このドキュメントの読み方¶
まずは”アーキテクチャ概要” から読み進めていただきたい。特にSpring MVCの経験がない場合は”はじめてのSpring MVCアプリケーション”を実施すること。 “アプリケーションのレイヤ化”は本ガイドラインで共通する用語と概念の説明を行っているため、必ず一読されたい。
次に”チュートリアル”に進む。 このチュートリアルでは”習うより慣れろ”を目的として、 詳細な説明の前にまず手を動かして、Macchinetta Server Framework (1.x)によるアプリケーション開発を体感していただきたい。
チュートリアルを実践したのちに、”アプリケーション開発”でアプリケーション開発の詳細を学ぶ。 特に”アプリケーション層の実装”でSpring MVCによる開発のノウハウを凝集して説明しているため、 何度も読み返すことを推奨する。 本章を読み終えた後にもう一度”チュートリアル”を振り返るとより理解が深まる。
ここまではMacchinetta Server Framework (1.x)を使用するすべての開発者が読むことを強く推奨する。
“Webアプリ開発機能”、”Web Service”、”データアクセス”、”アプリケーション形態に依存しない汎用機能”、”メッセージ連携”、”セキュリティ対策”については 目的に応じて必要なタイミングで参照すればよい。ただし、”入力チェック”はアプリケーション開発で通常は必要となるため、基本的には読んでおくこと。
テクニカルリーダーはこれらをすべて読み内容を把握した上で プロジェクトにおいて、どのような方針を定めるか検討していただきたい。
Note
時間がない場合、まずは
を読むとよい。
1.6. このドキュメントの動作検証環境¶
本ガイドラインで説明している内容の動作検証環境については、 「テスト済み環境」を参照されたい。
なお、本ガイドライン中に記載のあるJava SE 8とJava SE 11の主要な変更点については、”Java SE 8からJava SE 11までの主要な変更点”に概要をまとめてあるので、合わせて参照されたい。
Note
Jakarta EE 8への準拠について
2019年9月、Java EEの仕様策定がOracle CorporationからEclipse Foundationに移管され、Java EE 8に完全互換性を持つJakarta EE 8がリリースされた。 アプリケーションサーバやOSSライブラリは順次Jakarta EEに準拠するよう移行しており、Macchinetta Server Framework (1.x)もJakarta EEに準拠していくこととする。
Jakarta EE 8では既にJava EE 8で提供されているライブラリの名前(MavenのグループID・アーティファクトID)をJakartaに変更したものが提供されており、Jakarta EE 8に準拠するには使用するライブラリを切り替えれば良い。
なお、既にJakarta EE 9がリリースされているが、EE 9ではライブラリが内包するクラスのパッケージ名がjakarta
に変更されており、EE 9に準拠するには既存のソースコードを修正する必要がある。
主要なアプリケーションサーバやOSSライブラリはEE 9への移行を行っていない点に留意されたい。