Nuxt.js(Vue.js)とLayered Architectureのお勉強のために作成した簡単なチャットアプリ。
SPA(Nuxt.js(Vue.js)) + API(Go) + RDB(MySQL)という形になっている。
主に使用しているもののみ記載している。
Update系の処理を画面側で実装していないが、サーバー側で実装しているのはあくまでもお勉強のため。
Layered Architecture
をベースにする。
ただし、レイヤ間の結合度を下げるために各レイヤ間でDIPを行う。
├── interface
│ └── controller // サーバへの入力と出力を扱う責務。
├── application // 薄く保ち、やるべき作業の調整を行う責務。
├── domain
│ ├── model // ビジネスの概念とビジネスロジック。
│ ├── service // EntityでもValue Objectでもないドメイン層のロジック。
│ └── repository // infra/dbへのポート。
├── infra // 技術的なものの提供
│ ├── db // DBの技術に関すること。
│ └── router // Routingの技術に関すること。
├── middleware // リクエスト毎に差し込む処理をまとめたミドルウェア
├── util
└── testutil
cd server
make deps
make run
cd server
make test
cd server
make check
-
InfoQ.com、徳武 聡(翻訳) (2009年6月7日) 『Domain Driven Design(ドメイン駆動設計) Quickly 日本語版』 InfoQ.com
-
エリック・エヴァンス(著)、今関 剛 (監修)、和智 右桂 (翻訳) (2011/4/9)『エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)』 翔泳社
-
pospome『pospomeのサーバサイドアーキテクチャ』
-
花谷拓磨 (2018/10/17)『Nuxt.jsビギナーズガイド』シーアンドアール研究所
-
川口 和也、喜多 啓介、野田 陽平、 手島 拓也、 片山 真也(2018/9/22)『Vue.js入門 基礎から実践アプリケーション開発まで』技術評論社