CCSR(Continuous Concurrent Stepwise Refinement)手法を学ぶための参照プロジェクトの一つです。
このプロジェクトは、実装面、特にオブジェクトと画面・テーブル・JSONデータとのマッピングのやり方を中心にしたサンプルアプリケーションです。
CCSR手法は、ソフトウェアのもっとも重要な品質は発展性であるという考え方に基づく開発手法です。
- 要件定義・仕様化・実装の継ぎ目をなくす
- ビジネスロジックに焦点を合わせる
- 型によるモジュール構造を基本にする
- 要件定義手法として、要件の関係性・その可視化・関係者の合意形成を重視したRDRA手法を使用
- ソフトウェア仕様を記述する方法として、プログラミング言語(Java)による記述、JIGによる可視化、IDE IntelliJ IDEAを活用
- アーキテクチャとして三層+ドメインロジックを採用
- 実装技術としてSpring MVC, Thymeleaf, MyBatisを使用
- 記事:ソフトウェアのもっとも重要な品質は発展性 (2020/4/5)
- スライド:ドメイン駆動設計 15年の取り組みでわかったこと (2020/3/30)
- YouTube:RDRA2.0のサンプルをJIGで実装してみたよ (2020/4/30)
>./gradlew bootRun
でアプリケーションを起動し、ブラウザでlocalhost:8080
を開いてください。
- アプリケーションの紹介
- オブジェクトマッピングの概要
- アプリケーション画面へのリンク
- データベース管理画面へのリンク
- APIドキュメントへのリンク
などのオンラインドキュメントをご覧いただけます。
Javaを使ったアプリケーション開発の経験者を対象に、Spring MVCとMyBatisを使った、オブジェクトと画面・テーブル・JSONデータの
マッピングのやり方の参考情報を提供します。
以下の3領域のマッピングの実装例です。
- オブジェクト ⇔ HTML(画面)
- オブジェクト ⇔ JSON(Web API)
- オブジェクト ⇔ SQL(テーブル)
レイヤ構造は 三層+ドメインロジック です。
application/
アプリケーション層
coordinator/
複合サービスrepository/
リポジトリ定義service/
要素サービス
domain/
ドメインロジック
model/
モデルtype/
基本型
infrastructure/
インフラストラクチャ層
_configuration/
← 設定datasource/
データソースtransfer/
通信
presentation/
プレゼンテーション層
api/
API RESTコントローラweb/
画面コントローラ
- 全体 : Spring Boot , Gradle
- プレゼンテーション層 : Spring MVC, Thymeleaf
- データソース層とデータベース : MyBatis, Flyway, H2 Database Engine
- ドキュメント生成 : JIG
詳細は、オンラインのドキュメント(localhost:8080
で表示)とソースコードを参考にしてください。