Связать и развязать
Видео доклада
- Что такое архитектура приложений и зачем нам вообще о ней париться
- Архитектура - это то, что дорого менять
 - Архитектура - это общее понимание команды того, как все работает
 - Если у команды нет целой картины в голове - то и архитектуры нет
 - Мы должны строить систему так, чтобы можно было быстро понять что к чему. Управление сложностью, введение новых людей в команду
 
- Внутренняя и внешняя связанность как одни из основных "движителей" архитектуры
- Внутренняя связанность
- Что это такое и какие виды есть
 - Плохое и хорошее внутренней связанности. Чем плох или хорош тот или иной вид связанности
 - Связь с SOLID, а конкретно: принципом единой ответственности
 - Маленькие приемы для определения, нуждается ли объект в повышении внутренней связанности, в частности именования и комментарии перед классом
 - Классы Manager-ы, как пример объектов со слабой внутренней связанностью, хотя по их названию и может казаться что все там хорошо
 - Здравый смысл
 - Много маленьких объектов с высокой внутренней связанностью = легко рефакторить систему, проще заменить, нежели менять. А изменения - источник регрессий
 
- Внешняя связанность
- Поскольку в системе теперь не пара десятков, а сотни и тысячи объектов... у нас новая проблема - высокая внешняя связанность
 - Что это такое и к чему приводит. Приведу на примерах затруднения рефакторинга и внедрения новых фич
 - Виды внешнего связывания
 - Ассоциации между объектами, двусторонние ассоциации и почему их следует по возможности избегать
 - Инверсия зависимости, как способ снижения связанности
 - Коварная внешняя связанность по данным: как с ней бороться и почему оно коварно
 - Связь с GRASP:
* Protected Variations, как способ снижения риска регрессий. А-ля: "работает - не трогай"
* Информационный эксперт, как пример высокой внутренней связанности и немного снижения внешней связанности
* Фабрики полезны 
- MVC, как пример снижения внешней связанности и повышения внутренней связанности
- Гексагональная архитектура, как пример крайности в снижении внешней связанности от инфраструктуры
- Вопрос масштабов: влияние связанности на отдельные методы и целые компоненты/микросервисы
- Статический анализ, как способ выяснять гипотетически проблемные места в контексте связанности
                                                                Sergey Protko
                                    InTouch Health
                                    - Full stack developer at InTouch Health
 - He likes self-education and tries to help others with this in free time
 - Enjoys complicated tasks and hard music
 - GitHub