Все это не ново, и я не знаю, можно ли следовать этим на 100%. Но если это ваши цели, то с вашим кодом будет приятно работать.
Функция не полагается на скрытую смекалку
Языковые особенности порядка интерпретации приведения типов сбивают с толку. Да, изучать их весело, но использование их в производственной среде фактически ставит мину на место следующего разработчика, который коснется этого кода.
Функция имеет смысл в изоляции
Причины, по которым была создана функция, очевидны из заголовка и содержимого функции, без необходимости в дополнительном контексте вызывающей стороны или каких-либо функций, вызываемых изнутри.
Если разработчику нужно прочитать что-то, кроме функции, чтобы понять, что она делает, это не читается. Главный приз - передать точное значение только с помощью названия функции.
Функция предполагает знание языка
Да, семантика промисов и методов типа .reduce
громоздка. Да, закрытие и контекст требуют усилий, чтобы изначально у вас была голова. Да, вам все еще нужно привыкать ко всему этому.
Единственное предостережение - будьте осторожны, чтобы не использовать скрытую смекалку.
Последовательность превосходит комфорт
По большей части сокращение количества ошибок сводится к устранению сюрпризов. Если вы присоединитесь к команде фронтендов, состоящих из бывших бэкэнд-разработчиков, которые все пишут такие функции:
function makeThingsHappen() { // things happening }
или они используют / не используют точку с запятой, или они используют пробелы / табуляции, или [вставьте сюда свою любимую мозоль], просто прикусите пулю и присоединяйтесь. Получите автоматическое форматирование и отпустите свои мелкие предпочтения, они действительно не имеет значения. Ваша способность чувствовать себя комфортно в среде, которая противоречит вашим личным предпочтениям, является профессиональным качеством - развивайте ее.