Giter VIP home page Giter VIP logo

cleanarch's Introduction

Golang Clean Architecture template

Clean Architecture blog post

The Clean Architecture Layers

Skeleton

.
├── app                     The place of all business logic of the application
│   ├── domain                  Domain layer: enterprise business logic rules
│   │   ├── entity                  All of entities in the application
│   │   └── repository              The interfaces to impact the entities
│   ├── external                External layer: frameworks & drivers
│   │   └── adaptor                 Client to call other services/endpoints
│   ├── interface               The boundary of our data and business logic
│   │   ├── grpc                    Interface to serve the gRPC API
│   │   ├── persistence             Client to call all of persistences
│   │   │   ├── fs                      File system client
│   │   │   ├── kv                      Key-Value client
│   │   │   ├── nosql                   NoSQL client
│   │   │   └── rdbms                   SQL client
│   │   └── restful                 Interface to serve RESTful API
│   │       ├── handler                 (Or controller) Endpoint to serve the RESTful call
│   │       ├── middleware              Middleware for RESTful APIs
│   │       └── presenter               Represent the form of data for RESTful API
│   ├── registry                The skeleton of the application. Dependency injection is included. Connect interface with implementation
│   └── usecase                 Application specific business rules. Interfaces are included
│       ├── interactor              Implementation of the use case
│       └── model                   Data structs represents the input and output of the use cases
├── cmd                     Command line and executed program
│   ├── gentool                 Code generate tools
│   └── service                 The main executed program
├── deployments             Includes the configuration and the deployments for all environments
│   ├── heroku                  Heroku environment
│   ├── k8s                     K8s deployments
│   └── local                   Local develop environment
├── docs                    All documentations belong in here
├── internal                Internal library packages (not be exposed)
├── pkg                     Library packages
└── scripts                 Shell script files

cleanarch's People

Contributors

thangnguyen-69 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.