Skip to content

Hidayathamir/gocheck

Repository files navigation

gocheck

Checkout Team Go Code Convention.

code-structure-explain

Code structure

├── internal/
│   ├── app/            Package app contains application starter.
│   ├── config/         Package config provides functionality for loading and accessing application configurations.
│   ├── dto/            Package dto provides data transfer objects (DTOs) for transferring data between different layers of the application.
│   ├── entity/         Package entity provides domain entities representing the core business objects.
│   │   ├── table/      Package table provides table schema.
│   ├── extapi/         Package extapi provides implementations for external APIs.
│   ├── repo/           Package repo provides repository implementations for data storage.
│   │   ├── cache/      Package cache provides cache storage implementations.
│   │   ├── db/         Package db provides database connection and management functionalities.
│   ├── repomw/         Package repomw provides repo middleware.
│   ├── transport/      Package transport provides the implementation for handling input.
│   │   ├── grpc/       Package grpc provides gRPC server implementation.
│   │   ├── http/       Package http provides HTTP server implementation.
│   ├── usecase/        Package usecase provides the business logic implementation.
│   ├── usecasemw/      Package usecasemw provides usecase middleware.
├── pkg/                Package pkg provides package that can be imported by other services.
├── go.mod
├── go.sum
├── main.go
├── README.md

Feature

  • simulate real case scenario.
  • integration test.
  • unit test, (easy to implement because seperated by interface between layer but not implement yet).
  • integrated trace id front to back.
  • grpc server.
    • graceful shutdown.
  • http server.
    • graceful shutdown.
  • centralize protobuf.
  • code documentation with godoc.
  • gorm connection pooling.
  • validate request with golang validator.
  • usecase middleware.
    • usecase logger middleware.
  • repo middleware.
    • repo logger middleware.
  • repo cache layer.

About

Checkout Team Go Code Convention

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published