https://github.com/rluders/go-clean-architecture
This project is a hands-on demonstration of Clean Architecture principles applied to a simple yet versatile application—a Task Management system. It's designed as a companion to the article "Demystifying Clean Architecture in Go: Separating Fact from Fiction".
https://github.com/rluders/go-clean-architecture
article clean-architecture clean-code ddd-patterns go golang
Last synced: about 1 year ago
JSON representation
This project is a hands-on demonstration of Clean Architecture principles applied to a simple yet versatile application—a Task Management system. It's designed as a companion to the article "Demystifying Clean Architecture in Go: Separating Fact from Fiction".
- Host: GitHub
- URL: https://github.com/rluders/go-clean-architecture
- Owner: rluders
- License: mit
- Created: 2024-12-09T13:27:06.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-12T13:29:14.000Z (over 1 year ago)
- Last Synced: 2025-03-28T01:51:48.370Z (about 1 year ago)
- Topics: article, clean-architecture, clean-code, ddd-patterns, go, golang
- Language: Go
- Homepage: https://medium.com/@rluders/demystifying-clean-architecture-in-go-separating-fact-from-fiction-26fc8e81b99b
- Size: 10.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Task Manager: Clean Architecture Demonstration
Welcome to the **Task Manager** repository! This project is a hands-on demonstration of
Clean Architecture principles applied to a simple yet versatile application—a
Task Management system. It's designed as a companion to the article
**"[Demystifying Clean Architecture in Go: Separating Fact from Fiction](https://medium.com/@rluders/demystifying-clean-architecture-in-go-separating-fact-from-fiction-26fc8e81b99b)"**.
## Purpose
This repository showcases how Clean Architecture can adapt to different project needs and complexities. It provides two examples:
1. **Flat Project**: A minimalistic approach for smaller projects, combining layers for simplicity while maintaining core principles.
2. **Elaborated Project**: A modular, scalable design suitable for larger projects, with clear separation of responsibilities.
By comparing these two projects, you'll understand how Clean Architecture balances clarity, scalability, and Go’s philosophy of simplicity.
## Features
- **Dual Interfaces**:
- REST API
- Command-Line Interface (CLI)
- **Clean Architecture Layers**:
- Domain (Business Logic)
- Use Cases (Application Logic)
- Infrastructure (Delivery Mechanisms and Persistence)
## Getting Started
To explore the examples:
1. Clone this repository.
2. Navigate to the desired project (`flat-project` or `elaborated-project`).
3. Run the corresponding entry points (`cmd/cli/main.go` for CLI, `cmd/rest/main.go` for REST API).
## License
This project is licensed under the MIT License. See the `LICENSE` file for details.