GithubHelp home page GithubHelp logo

system-sekkei / ccsr-object-mapping Goto Github PK

View Code? Open in Web Editor NEW
38.0 18.0 3.0 766 KB

オブジェクトと画面・テーブル・JSONのマッピング

License: Apache License 2.0

Java 24.04% HTML 75.96%
ccsr domain-driven-design object-oriented-programming spring-boot

ccsr-object-mapping's Introduction

CCSR オブジェクトマッピング

CCSR(Continuous Concurrent Stepwise Refinement)手法を学ぶための参照プロジェクトの一つです。
このプロジェクトは、実装面、特にオブジェクトと画面・テーブル・JSONデータとのマッピングのやり方を中心にしたサンプルアプリケーションです。

CCSR手法

CCSR手法は、ソフトウェアのもっとも重要な品質は発展性であるという考え方に基づく開発手法です。

CCSR:Continuous Concurrent Stepwise Refinement (継続的・並行的・段階的な発展)

基本コンセプト

  • 要件定義・仕様化・実装の継ぎ目をなくす
  • ビジネスロジックに焦点を合わせる
  • 型によるモジュール構造を基本にする

CCSR手法の特徴

  • 要件定義手法として、要件の関係性・その可視化・関係者の合意形成を重視したRDRA手法を使用
  • ソフトウェア仕様を記述する方法として、プログラミング言語(Java)による記述、JIGによる可視化、IDE IntelliJ IDEAを活用
  • アーキテクチャとして三層+ドメインロジックを採用
  • 実装技術としてSpring MVC, Thymeleaf, MyBatisを使用

参考資料

このサンプルの利用方法

>./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で表示)とソースコードを参考にしてください。

ccsr-object-mapping's People

Contributors

irof avatar masuda220 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.