a well thought out, standards applied, modern and acceptable starting point
APACHE-2.0 License
gopre is a comprehensive Go project template designed to facilitate the development of robust and scalable applications using the principles of Domain-Driven Design (DDD) and the Command Query Responsibility Segregation (CQRS) architectural pattern. It provides a well-structured foundation for building complex applications with a focus on maintainability, testability, and adaptability.
This template embodies a layered architecture that strictly adheres to DDD principles. It encourages a clear separation of concerns between the domain, application, and infrastructure layers, ensuring that the core business logic remains isolated from technical implementation details.
While the template promotes the use of CQRS, it is not mandatory. You can choose to implement CQRS fully, partially, or not at all, depending on your project's specific requirements.
docker-compose.yml
file are provided for easy containerization and deployment.The project follows a standard Go project layout with the following key directories:
api
: Contains the implementation of different API types (HTTP, GraphQL, gRPC, OpenAPI).config
: Contains configuration files for the application (environment variables, database settings, etc.).cmd
: Contains the main entry points for the application's services (cmdsrv, querysrv, or myapp).internal
: Contains the core application layers (application, domain, infrastructure).pkg
: Contains shared packages and modules used throughout the application.test
: Contains unit, integration, and end-to-end tests.gopre is well-suited for:
This template not complete yet. Please check back later for 100% completion.
Contributions are welcome! Please feel free to submit issues or pull requests.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.