ガイドラインの目的
本ガイドラインではSpring Framework、Spring Batch、MyBatis を中心としたフルスタックフレームワークを利用して、 保守性の高いバッチアプリケーション開発をするためのベストプラクティスを提供する。
本ガイドラインを読むことで、ソフトウェア開発(主にコーディング)が円滑に進むことを期待する。
ガイドラインの対象読者
本ガイドラインはソフトウェア開発経験のあるアーキテクトやプログラマ向けに書かれており、 以下の知識があることを前提としている。
-
Spring FrameworkのDIやAOPに関する基礎的な知識がある
-
Javaを使用してアプリケーションを開発したことがある
-
SQLに関する知識がある
-
Mavenを使用したことがある
これからJavaを勉強し始めるという人向けではない。
Spring Frameworkに関して、本ドキュメントを読むための基礎知識があるかどうかを測るために Spring Framework理解度チェックテスト を実施するとよい。 この理解度テストが4割回答できない場合は、別途以下のような書籍で学習することを推奨する。
ガイドラインの構成
まず、重要なこととして、本ガイドラインは Macchinetta Server Framework (1.x) Development Guideline (以降、Macchinetta Server 1.x 開発ガイドライン)のサブセットとして位置づけている。 出来る限りMacchinetta Server 1.x 開発ガイドラインを活用し説明の重複を省くことで、ユーザの学習コスト低減を狙っている。 よって随所にMacchinetta Server 1.x 開発ガイドラインへの参照を示しているため、両方のガイドを活用しながら開発を進めていってほしい。
- Macchinetta Batch Framework (2.x)のコンセプト
-
バッチ処理の基本的な考え方、Macchinetta Batch Framework (2.x)の基本的な考え方、Spring Batchの概要を説明する。
- アプリケーション開発の流れ
-
Macchinetta Batch Framework (2.x)を利用してアプリケーション開発する上で必ず押さえておかなくてはならない知識や作法について説明する。
- ジョブの起動
-
同期実行、非同期実行、起動パラメータといったジョブの起動方法について説明する。
- データの入出力
-
データベースアクセス、ファイルアクセスといった、各種リソースへの入出力について説明する。
- 異常系への対応
-
入力チェックや例外ハンドリングといった異常系について説明する。
- ジョブの管理
-
ジョブの実行管理の方法について説明する。
- フロー制御と並列・多重処理
-
ジョブを並列処理/分散処理する方法について説明する。
- チュートリアル
-
基本的なバッチアプリケーション開発をとおして、Macchinetta Batch Framework (2.x)によるバッチアプリケーション開発を体験する。
ガイドラインの読み方
以下のコンテンツはMacchinetta Batch Framework (2.x)を使用するすべての開発者が読むことを強く推奨する。
以下のコンテンツは通常必要となるため、基本的には読んでおくこと。 開発対象に応じて、取捨選択するとよい。
以下のコンテンツは一歩進んだ実装をする際にはじめて参照すれば良い。
以下のコンテンツはMacchinetta Batch Framework (2.x)を使用して実際のアプリケーション開発を体験したい開発者が読むことを推奨する。 はじめてMacchinetta Batch Framework (2.x)に触れる場合は、まずこのコンテンツから読み始め、他のコンテンツを参照しながら進めるとよい。
ガイドラインの表記
本ガイドラインの表記について、留意事項を述べる。
- WindowsコマンドプロンプトとUnix系ターミナルについて
-
WindowsとUnix系の表記の違いで動作しなくなる場合は併記する。 そうでない場合は、Unix系の表記で統一する。
- プロンプト記号
-
Unix系の
$
にて表記する。
$ java -version
- コメント記号
-
Unix系の
#
にて表記する。
なお、本ガイドラインでは、root権限でコマンドを実行することはなく、#
はコメント記号としてのみ扱う。
$ # 行頭コメント
$ java -version # 行末コメント
- Bean定義のプロパティとコンストラクタについて
-
本ガイドラインでは、
p
とc
のネームスペースを用いた表記とする。 ネームスペースを用いることで、Bean定義の記述が簡潔になったり、コンストラクタ引数が明確になる効果がある。
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer">
<bean class="org.terasoluna.batch.item.file.transform.FixedByteLengthLineTokenizer"
c:ranges="1-6, 7-10, 11-12, 13-22, 23-32"
c:charset="MS932"
p:names="branchId,year,month,customerId,amount"/>
</property>
</bean>
参考までに、ネームスペースを利用しない記述を示す。
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer">
<bean class="org.terasoluna.batch.item.file.transform.FixedByteLengthLineTokenizer">
<constructor-arg index="0" value="1-6, 7-10, 11-12, 13-22, 23-32"/>
<constructor-arg index="1" value="MS932"/>
<property name="names" value="branchId,year,month,customerId,amount"/>
</bean>
</property>
</bean>
なお、ユーザに対してネームスペースを用いる記述を強要することはない。 あくまで説明を簡潔にするための配慮であると受け止めてほしい。
- 注釈の凡例
-
本ガイドラインで記載する注釈表記の凡例を以下に示す。
NOTE
補足説明について記す。 |
TIP
簡単な拡張方法や参考資料などについて記す。 |
IMPORTANT
順守すべき事など重要事項について記す。 |
WARNING
間違えやすい内容など注意すべき事項について記す。 |
CAUTION
問題を引き起こしかねない設定や実装など非推奨事項について記す。 |
ガイドラインの動作検証環境
本ガイドラインで説明している内容の動作検証環境については、 「 テスト済み環境 」を参照。