larien / clean-architecture

[Deprecated] Clean architecture example written in Go.

Home Page:https://larien.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Clean architecture example

This exercise examplifies:

  • Clean architecture
  • Testing
  • Mocking
  • Dockerizing
  • Linting

Technologies

  • Go
  • PostgreSQL
  • Docker and docker-compose
  • RESTful API
  • golangci-lint

TODO

Setup architecture

  • Implement linting
  • Implement entity layer
  • Implement handler layer
  • Implement controller layer
  • Implement repository layer
  • Initialize architecture in main
  • Implement go mod
  • Implement GitHub Actions

Create

  • Implement POST method for handler layer
  • Implement mocks for Create method for controller layer
  • Implement Create method for controller layer
  • Implement mocks for Create method for repository layer
  • Implement Create method for repository layer
  • Implement integration test for Create method

List

  • Implement GET method for handler layer
  • Implement List method for controller layer
  • Implement List method for repository layer
  • Implement mocks for List method
  • Implement integration test for List method

Detail

  • Implement GET method for handler layer
  • Implement Detail method for controller layer
  • Implement Detail method for repository layer
  • Implement mocks for Detail method
  • Implement integration test for Detail method

Delete

  • Implement DELETE method for handler layer
  • Implement Delete method for controller layer
  • Implement Delete method for repository layer
  • Implement mocks for Delete method
  • Implement integration test for Delete method

Docker

  • Dockerize Go
  • Dockerize PostgreSQL
  • Implement docker-compose

Technical Debt

  • Implement decoder as middleware
  • Implement encoder as middleware

About

[Deprecated] Clean architecture example written in Go.

https://larien.dev

License:MIT License


Languages

Language:Go 100.0%