You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Go application boilerplate and example applying modern practices
This repository tries to collect the best practices of application development using Go language.
In addition to the language specific details, it also implements various language independent practices.
Some of the areas Modern Go Application touches:
architecture
package structure
building the application
testing
configuration
running the application (eg. in Docker)
developer environment/experience
telemetry
To help adopting these practices, this repository also serves as a boilerplate for new applications.
Redis connection (using gomodule/redigo) removed due to lack of usage (see #120)
First steps
To create a new application from the boilerplate clone this repository (if you haven't done already) into your GOPATH
then execute the following:
chmod +x init.sh && ./init.sh
? Package name (github.com/sagikazarmark/modern-go-application)
? Project name (modern-go-application)
? Binary name (modern-go-application)
? Service name (modern-go-application)
? Friendly service name (Modern Go Application)
? Update README (Y/n)
? Remove init script (y/N) y
It updates every import path and name in the repository to your project's values.
Review and commit the changes.
Load generation
To test or demonstrate the application it comes with a simple load generation tool.
You can use it to test the example endpoints and generate some load (for example in order to fill dashboards with data).