GitHunt
YS

ysknkd/go-cli-clean-arch-study

Description

Clean Architecture ややこしいので、自分用のメモ。

Notes

entities

円の中心には entities, その周りが use cases に囲まれている。 entites は, use cases が外部に依存しないための基本的な道具を用意する。
use cases で扱うデータの型なんかはここで定義する。

use cases

usecase では、アプリケーションのユースケースを満たすようにアプリケーションロジックを実装する。

自分の理解では、データを保存するだとか、検索するだとかやりたいことを明記するけども、それがどのような手段で実現されるのかは意識しない。
例えば、 usecase で「データを保存する」としたときに、保存されるデータはローカルファイルでも DB でも、どこかのストレージサービスであろうがどこでもよいので、保存さえできればよい。

やりたいことがロジックであったり、インタフェースとしての定義(明記)になる。インタフェースを usecase に定義すると、 golang におけるインタフェースの受け入れを自然と満たすこともできる。やりたいことを書くことになるので厳密には違うけど。

controllers, gateways, presenters

具体的な外部とのつなぎ役。イメージ的には MVVM における ViewModel っぽい。外部と触れるのはここまで。
外部から来たデータを use case が理解できるように組み立てたり、その逆をするなど。

Languages

Go100.0%

Contributors

Created February 11, 2022
Updated February 11, 2022
ysknkd/go-cli-clean-arch-study | GitHunt