DDD/Clean Architecture go linters
Table of Contents
Origin (in Russian)
Tech talk (paid access only, unfortunately):
https://conf.ontico.ru/online/hl2023/details/5206668
Presentation:
https://docs.google.com/presentation/d/1n5jCie-9tBw3QEEF6NsNco4mS9xYkg52/edit#slide=id.g29c6e2d30cb_0_169
Linters
Dependencies between layers:
https://github.com/OpenPeeDeeP/depguard
https://github.com/fe3dback/go-arch-lint/
You can also check mine (very simplistic) — https://blog.bullgare.com/2024/06/cleanlinter-my-first-golang-linter/
Others:
https://github.com/nishanths/exhaustive — to check using all microtypes in enums/switches.
https://github.com/go-simpler/musttag + https://github.com/maranqz/golangconf2023/blob/main/tags/rules.go — to prevent using struct tags in Domain models (Value Objects).
https://github.com/maranqz/gopublicfield — to prevent changing Value Objects (Domain models) from outside of the package.
https://github.com/GaijinEntertainment/go-exhaustruct — is useful for checking DB-Domain mappers to check all fields are initialized.
Similar Posts
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.