Balancing Coupling in Software Design (Vlad Khononov)

Поділитися
Вставка
  • Опубліковано 20 лип 2024
  • We are used to treating coupling as the necessary evil. Hence, we aim to break systems apart into the smallest services possible, in the ever-lasting quest of decoupling everything. But what results are we getting by following this reasoning? - Instead of the promised land of evolvable systems, many such “decouple everything” endeavors lead straight into the chains of distributed monoliths.
    Can we do better? What if there is a better way to handle coupling in distributed systems? Or even, what if instead of fighting coupling, we can use it as a heuristic for designing systems that are actually evolvable and maintainable?
    That’s exactly what you will learn in this session: what coupling is, and how you can use it as a design tool. We will start by taking a journey through time, and explore the different models of evaluating coupling.
    Next, we will combine the existing knowledge into a coherent model - a simple function for evaluating a system’s decomposition into components. This function will allow you to assess the expected effort for evolving a system and use it as a heuristic for optimizing architectural design decisions.
    ABOUT VLAD
    Vlad Khononov is a software engineer with over 15 years of industry experience, during which he has worked for companies large and small in roles ranging from webmaster to chief architect. Vlad is a long-time proponent of domain-driven design and evolutionary architecture and currently helps companies make sense of their business domains, untangle monoliths, and tackle complex architectural challenges.
    Vlad maintains an active media career as a public speaker and blogger. He has spoken at numerous industry conferences - including O’Reilly Software Architecture, DDD Europe, and NDC - about subjects such as domain-driven design, microservices, and software architecture in general. In addition to his media work, he co-organizes the Domain-Driven Design Israel and Tel Aviv Software Architecture meetup groups.
    Vladik lives in Northern Israel with his wife and an almost-reasonable number of cats.
    - LinkedIn: / vladikk
    - Twitter: @vladikk
    - GitHub: @vladikk
    - vladikk.com
    TIMESTAMPS
    0:00 Intro
    1:57 About me
    3:33 Coupling
    5:26 Agenda
    5:50 (1) What is coupling
    8:25 (2) Dimensions of coupling
    9:08 (Dimension 1) Strength
    11:43 Coupling models
    13:05 Integration strength (levels)
    22:54 Integration strength (levels comparison)
    23:58 Example: Integration strength
    28:31 (Dimension 2) Distance
    34:08 (Dimension 3) Volatility
    34:56 Subdomains
    38:18 (3) Use coupling as a design tool / heuristic
    38:32 Balancing the dimensions of coupling
    45:32 Example: Microservices
    47:59 Example: Domain-Driven Design
    49:50 (4) Wrap up
    53:49 Additional resources (books, training)
    55:46 Q&A. Discussion
    TECH EXCELLENCE
    - Subscribe to our UA-cam channel / @techexcellence
    - Join our Meetup Group www.meetup.com/techexcellence
    - Follow us on LinkedIn / techexcellenceio
    - Follow us on Twitter / techexcellence_
    - Join our Discord Community / discord
    #SoftwareArchitecture #DesignPrinciples #Coupling #Cohesion #Modularity #Complexity #softwareengineering #techexcellence
  • Наука та технологія

КОМЕНТАРІ • 8

  • @vladanulardzic3186
    @vladanulardzic3186 9 місяців тому +5

    Thank you TE (Valentina Cupac) & Vlad Khononov for this GREAT session.
    KEY TAKEAWAY: DIMENSIONS OF COUPLING DESCRIBE THE NATURE OF A RELATIONSHIP BETWEEN TWO CONNECTED COMPONENTS. COMBINING THESE DIMENSIONS WE ARE GETTING FORMULA WHICH REFLECTS THE COST OF CHANGES.
    Keep on.

    • @TechExcellence
      @TechExcellence  9 місяців тому +3

      You're welcome, great key takeaway!

  • @hsukesan
    @hsukesan 10 місяців тому +7

    Fantastic session by Vlad.. 👏👏👏

  • @Helen-99
    @Helen-99 10 місяців тому +7

    Great video, thank you so much!

  • @Gray-Today
    @Gray-Today 10 місяців тому +3

    Balancing coupling with what?

    • @TechExcellence
      @TechExcellence  9 місяців тому +6

      Balancing the dimensions of coupling (strength, distance and volatility) in software