Popularity
8.0
Declining
Activity
0.7
Growing
1,761
34
214

Programming language: Go
License: MIT License
Latest version: v0.3.0

modern-go-application alternatives and similar packages

Based on the "Project Layout" category.
Alternatively, view modern-go-application alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of modern-go-application or a related project?

Add another 'Project Layout' Package

README

Modern Go Application

Mentioned in Awesome Go Go Report Card go.dev reference

GitHub Workflow Status CircleCI Gitlab

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.

Features

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).

Follow the instructions in [etc/loadgen](etc/loadgen).

Inspiration

See [INSPIRATION.md](INSPIRATION.md) for links to articles, projects, code examples that somehow inspired me while working on this project.

License

The MIT License (MIT). Please see [License File](LICENSE) for more information.


*Note that all licence references and agreements mentioned in the modern-go-application README section above are relevant to that project's source code only.