ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

HowProgrammingWorks - JavaScript and Node.js Programming

HowProgrammingWorks - JavaScript and Node.js Programming

Открыть в Telegram

Программная инжененрия для JavaScript, TypeScrip, Node.js 👉 Group: https://t.me/How_Programming_Works 👉 Node.js channel: https://t.me/metarhia 👉 Node.js group: https://t.me/nodeua

Больше
6 579
Подписчики
-324 часа
+97 дней
+6230 дней
Архив постов
Даже в JavaScript/TypeScript мире начала распространяться благая весть, что наследование это зло, и в большинстве случаев его лучше заменить структурной композицией или открытым конструктором. Но не все помнят, что была целая группа языков программирования объектно-базированных, где классы были и можно было делать экземпляры, но нельзя было делать новых классов: ada, fortran, foxbase, clipper... Подумайте, это интересное решение, так можно делать и в js/ts

То, что Promis не монада, это общеизвестно, но нашлись люди, которые говорят, что Array монада, и что из Thenable нельзя сдел
То, что Promis не монада, это общеизвестно, но нашлись люди, которые говорят, что Array монада, и что из Thenable нельзя сделать монаду, здесь доказательство про Thenable, о про Array даже говорить нет нужды, ну я надеюсь, что это очевидно... или нет? https://github.com/HowProgrammingWorks/Thenable/blob/master/JavaScript/b-monad.js

Сегодня вечером набор на паттерны закрывается https://youtu.be/UP1WyUZSr2s

💡 Как должен выглядеть стектрейс с использованием AggregateError + cause В примеры кода добавлена обработка ошибок: ООП, ФП, прототипного, реактивного и других стилей.
AggregateError: Validation
    at validatePoint (/monad-result.js:82:20)
    at Monad.chain (/monad-result.js:21:12)
    at Object.<anonymous> (/monad-result.js:93:43)
  [errors]: [
    TypeError: Invalid x: NaN
        at validatePoint (/monad-result.js:79:40)
        at Monad.chain (/monad-result.js:21:12)
        at Object.<anonymous> (/monad-result.js:93:43)
    TypeError: Invalid y: false
        at validatePoint (/monad-result.js:80:40)
        at Monad.chain (/monad-result.js:21:12)
        at Object.<anonymous> (/monad-result.js:93:43)
  ]
}
- Тут валидация выдает не только первую ошибку, но все, которые может найти, а значит, не нужно запускать код или его тесты много раз, исправляя ошибки по очереди - Благодаря ФП и Result тут вся программа доходит до конца, выдавая максимум ошибок, не вылетая на первой же - Обработка ошибок не требует кучи if-else в прикладном коде, все ветвление скрыто - Стек-трейс вложенный, но простой и понятный Обработка ошибок добавлена почти во все стили, это просто пример на ФП, но загляните, то же реализовано на ООП и других парадигмах и стилях. Code: https://github.com/HowProgrammingWorks/Paradigms/blob/main/JavaScript/monad-result.js

Это выпускник курса Patterns празднует 2027 год в коллективе своей компании. Воскресенье - последний шанс зарегистрироваться,
Это выпускник курса Patterns празднует 2027 год в коллективе своей компании. Воскресенье - последний шанс зарегистрироваться, потом догнать курс уже будет нереально, а следующего набора ждать примнрно 5 месяцев. https://nodeua.com/Patterns-2025