While web development is not simple content management systems and webshops any more, most of our prinicples and ideas have not changed that much. CRUD and MVC, while still good ideas, are not meant for handling complex bussiness requirements, logic and workflows.


Instead of fat controllers or services, dependency injections, by separating our domain logic into simple "units of work" connected together by commands and events, number of files might increase but our complexity decreases considerably.


If you are looking for a different way, ES (eventsourcing) and CQRS (command query responsibility segregation) might be the solution. It's actually much harder to explain those concepts then to use them so I will start with simple examples from every day developer life and then combine all of it with real life examples from some of my projects.

Comments

Comments are closed.

Great talk! This really is the topic I'm interested in learning more about.

I am still missing that one example that will break my understanding of the approach as overengineering. Even though I do believe it's highly scalable and easy once you start, I'd like to see a real life example implemented both ways and actual problem solved easier with ES / CQRS than CRUD, so I can wrap my mind around it.

Maybe format code on slides better (spaces, brackets ...)

Lovro at 17:34 on 18 Mar 2017

Great talk, and solid presentation of the concept.

After the talk, I had pretty good idea of what lecturer wanted to say. But still there were some missing links like "should I keep all data in one table?" and few other things I can't remember at the moment. I loved the intro on this topic, building webshop, building bug tracker, those were very relevant examples. And one more thing I liked very much is that little intro story and than an introduction of the speaker, great storytelling on work.


Few diagrams would help instead of a bunch of classes even though I don't mind code. Relating code with diagrams could provide some extra understanding of concepts. I mean things like who sends event, waits for an event, what is event dispatcher role in all that and stuff like that. The simple drawing could make all thing less abstract to us who are hearing about this stuff for the first time.


All in all great talk, it was well spent time.

Neven M at 21:47 on 20 Mar 2017

Miro's talk was a good presentation of a topic that is relatively new to me. I enjoyed listening to his way of improving solutions for the classic CRUD and MVC related problems.

Tomo Ε ala at 10:00 on 24 Mar 2017

This was a rather nice intro talk to the ES/CQRS, but still assumed at least some knowledge and understanding of somewhat non-trivial concepts, such as domain, value objects, DI, etc.

While CQRS/ES are not the easiest concepts to understand, Miro explained them in a rather clear and beginner friendly way, doing his best to break things down just enough using common examples and contrasting the technique to classic, well known CRUD approach.

While the presentation could benefit from some additional improvements in terms of introducing some graphical representations, such as diagrams for better understanding the work- and dataflow, and depicting in a more clear way the differences between the classical CRUD system in comparison with CQRS/ES approach, we must bear in mind that the presentation was done in a rather fixed time frame. The subject presented in this talk is very broad and deep, and cannot possibly be covered whole in one talk.

The presentation of selected of smaller subtopics was great, and in my opinion could be improved by adding some afore mentioned graphical elements.

Silvio at 10:11 on 11 Apr 2017

Great presentation of topic. Miro covered the topic very good considering time. It was definitely motivator to go and research the topic. I like the "vs" approach where Miro showed traditional MVC approach compared with CQRS/ES.