3 ms·
Because there's no mixing of applying changes to the state of the system and retrieving the state. Testing becomes much easier and looks like a business DSL on
by kmac_ 4y ago
Because there's no mixing of applying changes to the state of the system and retrieving the state. Testing becomes much easier and looks like a business DSL on the system (also connects well with functional core, imperative shell). Also for the heavy read systems you can easily introduce performance improvements as the read path is separated. Out of curiosity, what issues did you have with CQRS? How was it handled? I would like to know because maybe it was applied in an inconvenient way. Some developers that worked with classical layered architecture for years have a problem with CQRS, DDD and FCIS, but when it clicks it's "Oh wow, it makes a lot of things simpler" moment for them. There are also drawbacks of course and that approach fits well to bussines solutions, so you can't find many applications in OSS, which are mostly technical solutions.
- bayesian_horse 4y agoOh I just prefer functional programming. Perfect testability. Also Django, while arguably not really FP is still perfectly testable, and not dealing with any of all of that. Why would I want to manage at minimum three classes for every endpoint? Maybe this has some justification in a situation with a couple hundred devolpers on software handling millions of dollars worth of stuff... but otherwise??