I'm going to build counter service with following features. Main purpose is to learn how to build go service from sratch and find best way how to deliver it to the production.
TODO:
- HTTP endpoint response with increasing number on every call
- Build CI ( Inspired by vojtechmares/goreleaser-live )
- Tests 👻
- Reset counter request
- JSON logging with verbosity level
- Database backend to preserve counter during restart
- Metrics
- Automated deployment/rollout to Kubernetes
- Reasonable test coverage
- Help flag listing vars ( https://github.com/spf13/pflag )
- Use models
- Check conformance with https://github.com/golang-standards/project-layout
- Add online versioned documentation e.g. https://docusaurus.io/docs
I'm using André Staltz's ComVer as I prefer backward compatibility tracking over major.minor.patch decission hell.