Фундамент архітектури

Фундамент архітектури

Сергій Немчинський
This is a sample of the book's content.Buy on Leanpub

Table of Contents

Фундамент архітектури

  • Передмова: Чому ця книга існує і як її читати
    • Біль №1: Знання у вакуумі
    • Біль №2: Застаріле лайно мамонта
    • Біль №3: Сліпа віра у ШІ
    • Для кого ця книга
    • Як ми будемо вчитися: Problem-First
    • Структура: Куди ми йдемо
    • Подяка Early Access читачам
    • 🔑 Висновки розділу
  • Частина I. Фундамент та Філософія
  • Розділ 1. Еволюція болю: Від GOTO до ООП
    • Ера Хаосу: Spaghetti Code та GOTO (1960-ті)
    • Ера Структурного програмування та його “Спадщина” (1970-ті)
    • Ера Процедурного Пекла: Глобальні дані (1980-ті)
    • Народження ООП: Клітини і Повідомлення
    • Від цегли до байтів: Історія патернів (1977-1994)
    • Протверезіння: GRASP і SOLID
    • Велика Картина (The Big Picture)
    • А як щодо Функціонального програмування?
    • Сучасність: Як виглядають патерни зараз?
    • 🔑 Висновки розділу
  • Розділ 2. За що вам платять гроші? Архітектурні драйвери та мистецтво Trade-offs
    • ЩО проти ЯК: Функціональні та Нефункціональні вимоги
    • Сучасна шістка драйверів
    • Три вершники складності
    • Мистецтво компромісу (Trade-offs)
    • 🔑 Висновки розділу
  • Розділ 3. Парадокс ООП: Ви думаєте, що знаєте, — але ні
    • Що таке парадигма?
    • Швидкий огляд «сусідів» ООП
    • Алан Кей та Біологічна метафора
    • Messaging: Прохання замість Наказу
    • Стан + Поведінка = Нероздільна Єдність
    • Велика картина: де ми?
    • 🔑 Висновки розділу
  • Розділ 4. Інкапсуляція: Два обличчя “чорної скриньки”
    • Велика ілюзія безпеки
    • Дві трактовки: Від Сімули до Вікіпедії
    • Інкапсуляція як архітектурний принцип
    • Навіщо це треба: Гайка, Жопа та Race Conditions
    • Рішення: Справжній ООП-об’єкт
    • 🔑 Висновки розділу
  • Розділ 5. Наслідування: коли світ б’є вас по потилиці
    • Чому наслідування взагалі існує?
    • Золоте правило: IS-A
    • Реальний кейс: Медогляд і Квіти
    • Множинне наслідування та Diamond Problem
    • Правила виживання: скільки рівнів — норма?
    • 🔑 Висновки розділу
  • Розділ 6. Поліморфізм: вбивця if-else та справжнє серце ООП
    • Два типи поліморфізму: справжній і «цукровий»
    • Еволюція болю: від «Бібліотеки» до «Дерева смерті»
    • Рішення: Плагінна архітектура
    • Duck Typing: поліморфізм без ієрархії
    • Антипатерн: об’єкт без поведінки вбиває поліморфізм
    • 🔑 Висновки розділу
  • Розділ 7. Абстракція: мистецтво ігнорувати деталі
    • Що таке аналіз насправді?
    • Абстракція є у всіх парадигмах
    • Три принципи — один результат
    • Антипатерн: занадто абстрактно
    • Реальна історія: коли дизайн занадто точний
    • Золоте правило: інтерфейс — завжди, балаган — ніколи
    • 🔑 Висновки розділу та підсумок ООП-модуля
  • Розділ 8. UML: Навіщо малювати, якщо можна кодити?
    • Як ми домовилися про мову
    • Міф про «Магічну кнопку» та Rational Rose
    • «Як роблять джуни» або Кнопка Зла
    • Суть підходу: UML як «Детектор Гівнокоду»
    • Тонкощі та Trade-offs: Інструменти і Пастка коду
    • Чому ми беремо тільки дві діаграми з усіх можливих
    • 🔑 Висновки розділу
  • Розділ 9. Анатомія класу та битва стрілок: Class Diagram
    • Анатомія “Квадратика”
    • Залежності: Хто кого смикає
    • Битва Ромбиків: Агрегація vs Композиція
    • Мультиплікатори: Скільки вішати в грамах?
    • Генералізація і Чупа-чупси
    • Нотатки (стикери) та Dependency Injection
    • 🔑 Висновки розділу
  • Розділ 10. Життя об’єктів у рантаймі: Sequence Diagram
    • Коли статика бреше
    • Анатомія Sequence Diagram
    • «Як роблять джуни»: Антипатерни зайвої деталізації
    • Рішення: Хірургічний інструмент, а не малярний валик
    • Гранд-фінал: Навіщо взагалі вчити UML у 2026 році?
    • 🔑 Висновки розділу
  • Частина II. GRASP: Мистецтво розподілу відповідальності
  • Розділ 11. Вступ до GRASP та патерн Information Expert
    • Що таке GRASP загалом?
    • Анатомія об’єкта: Стан та Поведінка
    • Шлях Експерта на прикладі чека
    • Коли Експерт стає Монстром: Анемічна модель і кейс DirecTV
    • Модерн-процедуралізм та Smart Data
    • 🔑 Висновки розділу
  • Розділ 12. Creator (Творець): Хто дає життя об’єктам?
    • Процедурна помилка початківців
    • Правила Лармана: Хто має “ліцензію” на new?
    • Велика битва: Creator проти Dependency Injection
    • Конфлікт GRASP та SOLID: Жорстока реальність
    • Еволюція складності: “Гітарний ефект”
    • 🔑 Висновки розділу
  • Розділ 13. Controller (Контролер): Перша лінія оборони
    • Що таке System Event (Системна подія)?
    • Ізоляція багатопоточності: “Хвилеріз”
    • Антипатерн: Роздутий контролер (Bloated Controller)
    • Два різновиди контролерів (Facade vs Use-Case)
    • 🔑 Висновки розділу
  • Розділ 14. Low Coupling та High Cohesion: Інь і Янь архітектури
    • Low Coupling: Ефект Метелика та “Монолітність”
    • High Cohesion: Смітник чи Інструмент?
    • Доводимо ідеал до абсурду
    • Кейс YouTube: Коли реальність б’є теорію
    • Місток до майбутнього: GRASP проти SOLID
    • 🔑 Висновки розділу
  • Розділ 15. Polymorphism: Вбивця IF/ELSE
    • Вступна проблема: Життя на сходинках
    • “Як роблять джуни”: Жах видалення
    • Рішення: Поліморфізм як архітектурний патерн
    • Коли “паттернізм головного мозку” вбиває проєкти
    • 🔑 Висновки розділу
  • Розділ 16. Pure Fabrication: Чиста Вигадка (або чому в реальному світі немає Менеджерів і Хелперів)
    • Конфлікт ООП та Реальності
    • Компроміс заради метрик: Суть патерну
    • “Як роблять джуни”: Темний бік вигадок (Utils та Helpers)
    • Лікування хелперів
    • Резюме
    • 🔑 Висновки розділу
  • Розділ 17. Indirection: Посередник, що Розв’язує Руки (або чому один інтерфейс дорівнює нулю копіпасту)
    • Вступна проблема: Вася, Маша і Вічний Баг
    • Рішення: Посередник між двома класами
    • Термінологічне Пекло: Indirection, DIP, IoC та DI
    • Суперсила: Interception (Перехоплення)
    • Тонкощі та Trade-offs: Коли вводити інтерфейси?
    • Резюме
    • 🔑 Висновки розділу
  • Розділ 18. Protected Variations: Як Локалізувати Вибух (або стратегія виживання у світі, де ТЗ змінюється щодня)
    • Неминучість Змін та Одна Неприємна Правда
    • Механіка: Два Кроки до Виживання
    • Axis of Change — Поняття, Яке Буде Переслідувати Вас до Кінця Книги
    • Protected Variations і OCP — Батько і Син
    • Антипатерн: Не Будьте Вангою
    • Резюме та Прощання з GRASP
    • 🔑 Висновки розділу
  • Частина III. SOLID: Принципи гнучкості
  • Частина IV. Патерни GoF (Банда Чотирьох) у сучасному світі
Фундамент архітектури/Розділ 5. Наслідування: коли світ б’є вас по потилиці

Розділ 5. Наслідування: коли світ б’є вас по потилиці

https://leanpub.com/architecture-foundation

Чому наслідування взагалі існує?

https://leanpub.com/architecture-foundation

Золоте правило: IS-A

https://leanpub.com/architecture-foundation

Антипатерн: Голуб-Вертоліт

https://leanpub.com/architecture-foundation

Реальний кейс: Медогляд і Квіти

https://leanpub.com/architecture-foundation

Множинне наслідування та Diamond Problem

https://leanpub.com/architecture-foundation

Traits: Коли потрібен спільний код без ієрархії

https://leanpub.com/architecture-foundation

Правила виживання: скільки рівнів — норма?

https://leanpub.com/architecture-foundation

🔑 Висновки розділу

https://leanpub.com/architecture-foundation

Up next

Розділ 6. Поліморфізм: вбивця if-else та справжнє серце ООП

In this chapter

  • Розділ 5. Наслідування: коли світ б’є вас по потилиці
  • Чому наслідування взагалі існує?
  • Золоте правило: IS-A
  • Реальний кейс: Медогляд і Квіти
  • Множинне наслідування та Diamond Problem
  • Правила виживання: скільки рівнів — норма?
  • 🔑 Висновки розділу