Balancing Coupling in Software Design (Vlad Khononov)

Описание к видео Balancing Coupling in Software Design (Vlad Khononov)

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 YouTube channel    / @techexcellence  
- Join our Meetup Group https://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

Комментарии

Информация по комментариям в разработке