Design Accelerator: Ports and Adapters Architecture Part 1

Поділитися
Вставка
  • Опубліковано 21 лис 2024
  • Debunks the supposed complexity of the Hexagonal Architecture and demonstrates how the Ports and Adapters Architecture (aka Hexagonal) works.
    ---------------------------------------------------------------------------------------
    🛠 Vaughn Vernon | vaughnvernon.com/
    💡 Kalele | kalele.io/
    ⚙️ IDDD Workshop | kalele.io/trai...
    🗓 Upcoming Public Events | kalele.io/iddd...

КОМЕНТАРІ • 12

  • @KubaCodes
    @KubaCodes Місяць тому +6

    Even for someone familiar with the architecture this was very engaging and enjoyable to watch. Waiting for more!

  • @maikwiesmueller
    @maikwiesmueller Місяць тому

    Just the best explanation on hexagonal I've seen so far.
    Would add that this also benefits testability.

    • @niclash
      @niclash 29 днів тому +1

      My guess is that Vaughn will add these in coming episodes.

  • @BlindVirtuoso
    @BlindVirtuoso Місяць тому +2

    Nice one. Appreciate it. Thanks, Vaughn

  • @WalterVos
    @WalterVos 20 днів тому

    Was already yelling at my TV thinking somebody would explain P&A wrong AGAIN when you said "the port receives an HTTP request" 😂

    • @VaughnVernon
      @VaughnVernon  20 днів тому

      Hope you didn't stop there 😊

    • @WalterVos
      @WalterVos 19 днів тому

      You introduced the adapter just in time 😉. I like your style here, it's actually an emergent (description of a) design. My only critique would be that outside circle: Alistair always emphasizes that P
      P&A has no layering (although I can definitely understand why people view it that way). An example that shows this is when your test suite is calling the port. The test suite is an actor that needs no adapter, and so your outside circle would be empty

  • @mustaphab32
    @mustaphab32 Місяць тому +2

    Thanks Vaughn, but i really wonder, how is something new compared to the classic: “depend on the interface, not the implementation” ?

    • @jimhumelsine9187
      @jimhumelsine9187 Місяць тому +1

      "Program to an interface, not an implementation" is related, but I see a distinction.
      The interface/implementation principle is one of the two design principles of Design Patterns.
      It is realized in several design patterns, such as Strategy, Template Method, Façade and to some degree Adapter.
      I view Hexagonal Architecture/Ports&Adapters as pattern of these patterns that pulls them together into a cohesive design.
      I have blogged about this, and I have my own HexArch/P&A video presentation online, but I am reluctant to post any links here. Every time I post a comment with links, it get's removed by UA-cam. I suspect it's trying to avoid self promotion.

    • @VaughnVernon
      @VaughnVernon  20 днів тому +1

      It's the separation of outside and inside and the responsibilities that should be separated. You could implement interfaces and still have confused responsibilities.

  • @KaleleInfo
    @KaleleInfo Місяць тому

    Nice!

  • @KaleleInfo
    @KaleleInfo Місяць тому

    Nice!