Yesterday I’ve attended a DDD-WAW meetup with Andrzej Krzywda from Arkency which was great. Andrzej is a great guy. I’ve met him first time in real. Andrzej was talking about his programming career. He is a good storyteller. He was of course talking a lot about DDD and how they do it in Arkency. He showed off some examples. Pointed us to demo app of the DDD/CQRS/ES patterns applied - e-commerce. Before yesterdays talk I listened to his interview on Mateusz Gil’s podcast on spotify. Thus I knew what to expect. I’ve got 3 takeaways from that talk.
- I should read a book by Martin Fowler named Refactoring. (I got this on my shelf since a few years)
- Another called E-Myth by Gerber - to help understand our business clients way of thinking.
- I should try Copilot from Github.
DDD concept is known to me. I tried to learn it from either of books blue one by Eric Evans and red one by Vaughn Vernon. I failed on both. Someone from the audience recommended a Hands-on Domain-driven Design - by example by Michael Plot. Maybe I will give it a go. I find DDD more appealing to me as a hexagonal apps. If you are not familiar I really recommend this great article Hexagonal Architecture There are other great articles on the web on that topic. Essentially it’s putting all the core business logic into POROs (or in Java case POJOs), in good named modules and build a structure of an app NOT by technical role as it’s in default generated rails app. Some say it’s also a good practice in other technologies for example in NodeJS you can find Project Structure by self-contained component role. TBH I find it so good that it should be applied in every single project. I’ve learned this concept a few years ago thanks to Kent C Dodds from his egghead course introducing to webpack. I was migrating Bootzooka grunt or gulp to webpack back then. I think this is a rule which Kevlin Henney strongly emphasize. He is a great man.
Extracting business logic from framework objects. That is a great concept of clean code with quick tests but hard to achieve IMO. It requires a lot of code hygiene and discipline. I find it as an alternative to the classic ActiveRecord pattern proposed by Rails guru DHH. Of course it requires some balance and taste to decide when to go with that.
That DDD-WAW group (in Warsaw) is set by very pleasant gentlemen Przemek and Marcin. The second comes from dotNet world as I understood. He occasionally gives talks there, on meetup group strictly dedicated to .Net. That is why there were a lot of people on DDD-WAW meetup from around that area. It was great to meet excited coders live.
On the way home I’ve listened amazing podcast From Kubernetes to PaaS - now what? From which I took 2 recommendations:
- I should give a try to move from nvm, rvm to asdf tool which is a package version manager for multiple tools
- I should learn more about nixOS - A few years back my friend praised it but it was a black magic for me back then