The purpose of the template is to show how to organize a project and prevent it from turning into spaghetti code, where to store business logic so that it remains independent, clean, and extensible, how not to lose control when a microservice grows. Configuration. First, config.yml is read, then environment variables overwrite the yaml config if they match. The config structure is in the config.go. The env-required: true tag obliges you to specify a value (either in yaml, or in environment variables). For configuration, we chose the cleanenv library. It does not have many stars on GitHub, but is simple and meets all the requirements. Reading the config from yaml contradicts the ideology of 12 factors, but in practice, it is more convenient than reading the entire config from ENV. It is assumed that default values are in yaml, and security-sensitive variables are defined in ENV.

Features

  • Integration tests
  • Server handler layer (MVC controllers)
  • Server routers are written in the same style
  • Entities of business logic (models) can be used in any layer.
  • Dependency Injection
  • Clean Architecture

Project Samples

Project Activity

See All Activity >

Categories

Frameworks

License

MIT License

Follow Go Clean template

Go Clean template Web Site

Other Useful Business Software
$300 Free Credits for Your Google Cloud Projects Icon
$300 Free Credits for Your Google Cloud Projects

Start building on Google Cloud with $300 in free credits. No commitment, no credit card required until you're ready to scale.

Launch your next project with $300 in free Google Cloud credits—no strings attached. Test, build, and deploy without risk. Use your credits across the entire Google Cloud platform to find what works best for your needs. After your credits are used, continue with always-free tier services. Only pay when you're ready to scale. Sign up in minutes and start exploring.
Start Free Trial
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Go Clean template!

Additional Project Details

Operating Systems

Linux, Mac, Windows

Programming Language

Go

Related Categories

Go Frameworks

Registered

2023-01-10