How do I learn new things about programming? I read good books (my latest one is Release It! Design and Deploy Production-Ready Software, highly recommended!), watch tips on YouTube, read articles on Medium, and ask ChatGPT questions.
And there is another important source of knowledge for me: GitHub repositories. Whenever I want to learn or refresh my memory about some development concept (e.g., domain events, background jobs, value objects, clean architecture), I’m trying to find it in various GitHub repositories to see how other experienced guys implement it.
Today I want to share with you 5 different repositories you can use to learn how to structure your project according to Clean Architecture principles.
If you are going to learn the principles of structuring a project using Clean Architecture, the Clean Architecture Solution Template is the place to start. This is a basic single page TODO application that can be diligently studied in less than an hour.
commands
queries
result object
domain events
interceptors
guard
auditable entity
domain exception
⭐ ⭐ ⭐ ⭐ ⭐ 14,4k
It’s a pretty rich project compared to others and you’ll have to spend some time exploring it. However, the time spent is worth it. Besides the clean architecture, the project implements many DDD and other programming concepts that you can learn by exploring it.
background tasks
railway oriented programming
mediator
aggregates
maybe type
specification
unit of work
⭐ 211
The following project is a sample implementation of the .NET Core REST API CQRS with raw SQL and DDD using a clean architecture.
mediator
domain services
commands and queries
aggregate roots
domain events
shared kernel
⭐ ⭐ 2,6k