Skip to content

NitinKumar004/three-layer-architecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 

Repository files navigation

πŸ—οΈ Go Project: Three-Layer Architecture (Clean Code Example)

This project demonstrates a Three-Layer Architecture in Golang with unit testing and mock integration, using:

  • net/http for handlers
  • A custom service layer for business logic
  • A store layer for data access
  • Fully unit-tested using Go’s testing package and mock functions

🧱 Project Structure

microservice/ β”‚ β”œβ”€β”€ Models/ β”‚ β”œβ”€β”€ user/ β”‚ β”‚ β”œβ”€β”€ user.go β”‚ β”‚ └── user_test.go # βœ… model-related tests (if any) β”‚ └── task/ β”‚ β”œβ”€β”€ task.go β”‚ └── task_test.go β”‚ β”œβ”€β”€ Store/ β”‚ β”œβ”€β”€ user/ β”‚ β”‚ β”œβ”€β”€ store.go β”‚ β”‚ └── store_test.go # βœ… user store tests β”‚ └── task/ β”‚ β”œβ”€β”€ store.go β”‚ └── store_test.go # βœ… task store tests β”‚ β”œβ”€β”€ Service/ β”‚ β”œβ”€β”€ user/ β”‚ β”‚ β”œβ”€β”€ service.go β”‚ β”‚ └── service_test.go # βœ… service logic test β”‚ └── task/ β”‚ β”œβ”€β”€ service.go β”‚ └── service_test.go β”‚ β”œβ”€β”€ Handler/ β”‚ β”œβ”€β”€ user/ β”‚ β”‚ β”œβ”€β”€ handler.go β”‚ β”‚ └── handler_test.go # βœ… HTTP handler test β”‚ └── task/ β”‚ β”œβ”€β”€ handler.go β”‚ └── handler_test.go β”‚ β”œβ”€β”€ Database/ β”‚ β”œβ”€β”€ connection.go β”‚ └── connection_test.go # βœ… DB connection test β”‚ └── main.go

//no issue golangci-lint run checked zopdev@ZopSmarts-MacBook-Pro microservice % golangci-lint run
0 issues.

// test coverge go test ./... --coverprofile=c.out
microservice coverage: 0.0% of statements ? microservice/Models/task [no test files] ? microservice/Models/user [no test files] ok microservice/database 2.033s coverage: 0.0% of statements [no tests to run] ok microservice/handler/task 1.496s coverage: 73.2% of statements ok microservice/handler/user 1.237s coverage: 71.4% of statements ok microservice/service/task 0.936s coverage: 84.6% of statements ok microservice/service/user 1.752s coverage: 82.4% of statements ok microservice/store/task 0.512s coverage: 88.1% of statements ok microservice/store/user 2.360s coverage: 82.5% of statements

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors