На одну сторінку

Принципи програмування: шпаргалка

Те, що варто тримати під рукою. Якщо рядок незрозумілий, повернись у відповідний урок курсу.

Відкрити курс: Принципи програмування

Базові правила

ЩоЯк
DRYОдне знання, одне місце. Дублювання дешевше за хибну абстракцію.
KISSНайпростіше рішення, яке працює.
YAGNIНе пиши код під вимоги, яких ще немає.
Правило трьохВиносити спільне на третьому повторі, не на другому.

SOLID одним рядком

ЩоЯк
S: Single ResponsibilityОдна причина для зміни на модуль.
O: Open/ClosedНова поведінка новим кодом, без правок старого.
L: Liskov SubstitutionПідтип працює всюди, де працює батько.
I: Interface SegregationВузькі інтерфейси під конкретного клієнта.
D: Dependency InversionБізнес-логіка залежить від інтерфейсів, не від бази й HTTP.

Запахи коду, які варто прибрати

ЩоЯк
Довгий switch за типомСтратегія або мапа обробників (O).
Булеві прапорці в параметрахРозділи на кілька функцій.
new Postgres() усередині сервісуПередай залежність у конструктор (D).
Коментар «що робить код»Перейменуй змінну або винеси функцію.
Метод кидає NotImplementedПорушено Liskov: переглянь ієрархію.
Клас на 500 рядківЗнайди причини змін і розділи (S).

Мапа патернів

ЩоЯк
StrategyКілька способів однієї дії: type Pricing = (base: number) => number
FactoryОдне місце вибору реалізації: createNotifier(channel, config)
ObserverРеакції на подію без прямих викликів: emitter.subscribe(fn)

Інші шпаргалки

Розділи платформи