Minimal project structure for building Go application.
- Clean
main.go
initialization - Provider based dependency injection (using singleton)
- Config files replaceable with ENV variables
- Core layer separation: inbound, outbound, usecase
- Database migration
- Basic db client repository
- Database model generator
- Basic redis cache client repository
- Integration test
go get -u github.com/cymon1997/go-template
Don't forget to replace all import path to your project path
- Database migration: golang-migrate
- Database model generator: gen
Checkout from latest main
branch
git checkout main
git pull origin main
git checkout -b <your_branch>
Hint: please take a look at Branch Convention
If you add other dependencies, run:
make update-dep
Before raise a Pull Request, please make sure you already suffice the tests of your code.
make test
Format:
[prefix]_[feature_name]
Prefix:
f_
for new feature implementationi_
for adding code improvementb_
for fixing bug
Examples:
- f_i
- i_setup_http_transport
- b_fix_intermittent_http
Please raise an issue and explains the issue / feature that you want to be supported. Give detail explanation about the issue / feature.
If you have anything to ask / discuss, please contact me below, thanks!
Aji Imawan Omi
GitHub: cymon1997
GNU GENERAL PUBLIC LICENSE - Aji Imawan Omi