sekky0905 / nuxt-vue-go-chat

Chat sample of Nuxt.js(Vue.js) + Go(Layerd Architecture)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nuxt Vue Go Chat

Build Status

概要

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入門 基礎から実践アプリケーション開発まで』技術評論社

参考にさせていただいた記事

About

Chat sample of Nuxt.js(Vue.js) + Go(Layerd Architecture)


Languages

Language:Go 87.7%Language:Vue 8.1%Language:JavaScript 3.5%Language:TSQL 0.3%Language:Makefile 0.2%Language:CSS 0.0%Language:Dockerfile 0.0%