- Archived
- Essential
- Domain Driven Design
- Hexagonal Architecture
- Repository Design (with transaction)
- Technical
- Mock UT with go-sqlmock and Redis Mock
- Clean Arch Detect/Check Tool
- Chore
- Essential
- Roadmap
- Essential
- Support Dependency Inversion/Dependency Injection
- Improve HTTP Handle Implement
- Support Domain Event
- Add GRPC Example
- Technical
- Integrate air
- Integrate Kafka
- Integrate Prometheus
- Hot reloading configuration
- Essential
- Primary Module
manually install
# install pre-commit
brew install pre-commit
# install golangci-lint
brew install golangci-lint
# install commitlint
npm install -g @commitlint/cli @commitlint/config-conventional
# add commitlint config
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
# add pre-commit hook
make precommit.rehook
or just type
make init && make precommit.rehook
prepare mysql via docker
docker run --name mysql-local \ ✔ 00:17:00
-e MYSQL_ROOT_PASSWORD=mysqlroot \
-e MYSQL_DATABASE=go-hexagonal \
-e MYSQL_USER=user \
-e MYSQL_PASSWORD=mysqlroot \
-p 3306:3306 \
-d mysql:latest
- Architecture
- Project Conventional