gRPC を用いてリアルタイムチャットアプリを作ってみる(server 側)
- サーバーを 8080 ポートで起動する
$ make run
- MySQL のデータを初期化する
$ make reset_migration
- ドメインモデルの定義・ライフサイクルの表現
- エンティティ
- 値オブジェクト
- ファクトリ
- リポジトリ
- ドメインサービス
※トークルームとメッセージは別集約として扱う(リポジトリで集約単位で扱うにはメッセージの数が多すぎるため)
- Domain層で定義したRepositoryを実現する
- Domain層で定義したRepositoryの実装クラス
- mysqlとのコネクション確保
- DBデータ⇆Entityの変換を行う独自のFactory(DTO)
- redisのコネクション確保
- Domain情報を駆使して、ユースケースを進行させる
- 入力値(InputData)
- 出力値(OutputData)
- ユースケースを実現するinteractor
- interactorのインターフェースであるinput_port
- リクエストを整形しアプリケーションサービスに伝搬、出力のレスポンスも担う(controller/presenter)
- protoファイル定義・自動生成コード
- どの層にも属さない共通処理
- wireを用いて依存性注入を行う
- gomockでモックした関数
- モックを利用したユニットテスト
- docker情報