I was working in both small businesses and big companies so far. On my path I met different kind of programmers and had a lot of conversations about how to write good code, how should we structure files in projects and what's the purpose of specific design pattern. It's really great that developers have this urge to discuss ideas with each other - this is developing everyone!
Recently I watched fantastic talk by Jimmy Bogard about how to design your application, so your architecture is as SOLID as your code is. In his talk he says about CQRS and how this pattern allowed him to design his application better.
I have to say - this talk really inspired me. In projects I worked on, both professionally and as a hobby, it was an obvious to have a
Repositoryclass, which had methods like
Size of this file grew along side with project itself. In the end there would be a lot o methods, that were used only in one place in our codebase. Now when I think about that it's clear, that this approach violates many good practices. Most of all - Single Responsibility Principle. I really like how you could improve this poor design with a little of CQRS and mediator design pattern. It's really cool, because using this idea is possible even in legacy project and it will take only a little time to adopt.