foundation
Функции высшего порядка
Callbacks, map/filter/reduce, фабрики функций, декораторы и точки внедрения зависимостей.
Функция высшего порядка принимает функцию, возвращает функцию или делает оба. `map`, `filter`, `reduce`, middleware, валидаторы и декораторы отделяют политику от итерационной обвязки.
При обёртывании функций намеренно сохраняйте `this`, arity и поведение при ошибках. `reduce` становится нечитаемым, когда кодирует слишком много состояния — выбирайте явные циклы ради ясности.
const withLogging = (fn) => (...args) => {
console.log('call', args);
return fn(...args);
};
На интервью объясняйте концепцию на конкретном примере и называйте поведение рантайма, которое проверяют.
Компромисс часто между ясностью и производительностью или между безопасностью и удобством.
Чеклист:
- Называйте контракты входа/выхода.
- Сохраняйте this при обёртывании.
- Держите reducers сфокусированными.