Awesome! It's awkward like as we grow as a software engineer we dream to do complex things just to realise later that the secrets lie actually in the simplicity. Poetical!
Interesting and good presentation points... As food for thought, while I do agree that clean architecture is an abstract book, if you look at Chapter 34 "The Missing Chapter" by Simon Brown, you will find a "project code organization" called "package by component" that is pretty similar to what you're proposing, with some C.A. concepts in itself. Great work! Thanks.
Thanks! Indeed, that chapter probably inspired some of my thoughts. Simon's C4 model is a great way to structure things, too, if you haven't looked at it, yet.
This is great. I actually skipped over the best part (component-based architecture) while I try to ignore other architecture styles :). For someone in a hurry, it would be nice if it came first and other styles discussed last.
But Alistair Cockburn always says what you do inside the hexagon is none of his business, meaning whether you implement a rich domain model or just CRUD that's your decision. The hexagonal arch its primary value is in ports and adapters. An application should not be dictated by the driver or driven sides. The app defines its 'protocols', and the driver; either GUI(web, CLI, jobs, etc) or Automatic Tests shall implement the protocols. So any project can be implemented with hexagonal either with rich or poor domain
Yes, you can implement a Hexagonal Architecture with an "anemic" domain model (i.e. CRUD). In my experience, however, the ports and adapters will feel more like an overhead with an anemic domain model while when you have a rich domain model it feels more that they are providing real value by encapsulating the domain. And that feeling is often what convinces the team to stick to an architecture style or not :).
Id say the title of this video is over engineered and under engineered. Over engineered as it is impossible to know what you are talking about from the title, under engineered as you are lacking the link to the code. Basically a ball of mud as you say. While clean architecture is abstract book, you make simple java modules abstract enough. My 2nd 1hr video from you that feels like it tought or showed or proved anything other than just endless artificialized abstraction by poor slides, naming things they are not named, little to know convincing arguments.
Awesome! It's awkward like as we grow as a software engineer we dream to do complex things just to realise later that the secrets lie actually in the simplicity. Poetical!
Interesting and good presentation points... As food for thought, while I do agree that clean architecture is an abstract book, if you look at Chapter 34 "The Missing Chapter" by Simon Brown, you will find a "project code organization" called "package by component" that is pretty similar to what you're proposing, with some C.A. concepts in itself.
Great work! Thanks.
Thanks! Indeed, that chapter probably inspired some of my thoughts. Simon's C4 model is a great way to structure things, too, if you haven't looked at it, yet.
I like this idea of a component API
This is great.
I actually skipped over the best part (component-based architecture) while I try to ignore other architecture styles :). For someone in a hurry, it would be nice if it came first and other styles discussed last.
But Alistair Cockburn always says what you do inside the hexagon is none of his business, meaning whether you implement a rich domain model or just CRUD that's your decision. The hexagonal arch its primary value is in ports and adapters. An application should not be dictated by the driver or driven sides. The app defines its 'protocols', and the driver; either GUI(web, CLI, jobs, etc) or Automatic Tests shall implement the protocols. So any project can be implemented with hexagonal either with rich or poor domain
Yes, you can implement a Hexagonal Architecture with an "anemic" domain model (i.e. CRUD). In my experience, however, the ports and adapters will feel more like an overhead with an anemic domain model while when you have a rich domain model it feels more that they are providing real value by encapsulating the domain. And that feeling is often what convinces the team to stick to an architecture style or not :).
Modularizing software makes sense, but i am not sure of what have i leaned here?
Would be nice to get the code to this project
Sorry, it's closed source atm. I'll see if I can extract that component into a separate GitHub repo.
However you organize your code, it will become a mess no matter what..
LOL 😂
Id say the title of this video is over engineered and under engineered.
Over engineered as it is impossible to know what you are talking about from the title, under engineered as you are lacking the link to the code.
Basically a ball of mud as you say.
While clean architecture is abstract book, you make simple java modules abstract enough. My 2nd 1hr video from you that feels like it tought or showed or proved anything other than just endless artificialized abstraction by poor slides, naming things they are not named, little to know convincing arguments.
I'm sorry you feel this way. If you have any constructive feedback, please drop it here so that I can address it.
@@tomhombergs6559 likewise