Віктор Турський про програмування / навігатор

Інженерна майстерність і карʼєра / крок 05

3 важливі книги про проектування програмного забезпечення

початковий 04:05 дивитися на YouTube ↗

Розділи

Про що це відео

Глядачі постійно просять порадити книги з програмування, але «програмування» — надто широка тема, тож автор звужує її до трьох фундаментальних книг про проектування ПЗ, кожна з яких, за його словами, змушує подивитися на побудову програми під трохи іншим кутом. Він свідомо уникає «хардкорних» варіантів: це фундамент, з якого варто починати. Три книги утворюють набір, який він подає як взаємно підсилюваний: Clean Architecture розповідає, які шари має мати бекенд, патерни Фаулера показують, як ці шари реально реалізуються в живих системах, а DDD пояснює, чому розуміння предметної області взагалі вирішує, чи буде проєкт успішним.

Головне

  • Clean Architecture (Роберт Мартін) — половина книги про те, як структурувати бекенд на шари і яка логіка стоїть за цим поділом; друга половина — SOLID. Базова, але дуже корисна. Автор обіцяє наступні відео на каналі з глибшим розбором: не просто «ось шари», а як реалізувати кожен шар.
  • Domain-Driven Design (Ерік Еванс) — пояснює, чому одні проєкти провалюються, а інші стають успішними, і чому в одних кодових базах додавати фічі легко, а в інших — болісно; відповідь — проектування навколо предметної області. Для автора ця книга стала «прям відкриттям», яке змінило його погляд на розробку.
  • Він переказує деталь з інтерв'ю Еванса: єдине, про що Еванс шкодує в книзі, — що ключова тема bounded context стоїть у кінці, а не на початку. Навіть половина книги вже змінює спосіб мислення.
  • Patterns of Enterprise Application Architecture (Мартін Фаулер) — не лякайтеся слова «Enterprise» у назві; автор не знає, чому вона так називається, але книга чудова. На відміну від тактичних патернів GoF, це патерни стратегічні.
  • Ви, найімовірніше, ніколи не реалізовуватимете патерни Фаулера напряму, але зустрінете кожен із них у своєму застосунку — всередині ORM, фреймворку, структури бекенда. Книга вчить, як насправді працюють інструменти, якими ви вже користуєтеся.
  • Три книги зчеплені між собою: Фаулер доповнює Clean Architecture (яка описує шари, але не те, як їх втілити) і додає конкретні патерни (value objects тощо) до ідей DDD.

Теми відео

Частина цих треків