Let's build components, not layers by Tom Hombergs @ Spring I/O 2022

Поделиться
HTML-код
  • Опубликовано: 29 окт 2024
  • НаукаНаука

Комментарии • 15

  • @yanjim
    @yanjim 11 месяцев назад

    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!

  • @8VT0
    @8VT0 Год назад +5

    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.

    • @tomhombergs6559
      @tomhombergs6559 Год назад +1

      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.

  • @bokangthoola9095
    @bokangthoola9095 Год назад +1

    I like this idea of a component API

  • @solalem2001
    @solalem2001 9 месяцев назад

    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.

  • @bokangthoola9095
    @bokangthoola9095 Год назад +2

    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

    • @tomhombergs6559
      @tomhombergs6559 Год назад +3

      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 :).

  • @joachimdietl6737
    @joachimdietl6737 Год назад +3

    Modularizing software makes sense, but i am not sure of what have i leaned here?

  • @jonas-tm
    @jonas-tm 2 года назад +5

    Would be nice to get the code to this project

    • @tomhombergs6559
      @tomhombergs6559 Год назад

      Sorry, it's closed source atm. I'll see if I can extract that component into a separate GitHub repo.

  • @tranceyy
    @tranceyy 2 года назад +4

    However you organize your code, it will become a mess no matter what..

  • @dinobulja
    @dinobulja 2 года назад +4

    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.

    • @tomhombergs6559
      @tomhombergs6559 Год назад +1

      I'm sorry you feel this way. If you have any constructive feedback, please drop it here so that I can address it.

    • @dinobulja
      @dinobulja Год назад

      @@tomhombergs6559 likewise