HowProgrammingWorks - JavaScript and Node.js Programming
6.27K subscribers
343 photos
9 videos
1 file
855 links
Программная инжененрия для 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
Download Telegram
✔️ Курс Patterns 2025 уже начался, пример того, что мы разбираем на созвонах у вас есть, вчера опубликовал лекцию про Referential Transparency (ссылочную прозрачность) адаптированную для ООП и других парадигм, не нужно думать, что это только для ФП полезно, мы многое берем из ФП и адаптируем. Но все еще есть несколько мест, если вы не успели, можно догнать, неделя это не критичное отставание, заходим, цены как положено на черную пятницу
https://nodeua.com/Patterns-2025
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
Илья Климов делает курс по TypeScript, он не знает, что я пишу это тут до публикации, а многие не поверят, что я вообще могу писать такое про TypeScript. Если вы думаете, что не люблю TS, это не правда, я использую его много, а не люблю я то, что делают из TS многие разработчики - нечитаемые, бессмысленные нагромождения конструкций, не дающих никакой прибавки к надежности или производительности, понятности и управляемости кода. Большинство TS, который можно увидеть в обычных проектах, это или бойлерплейт или формально добавленные типы, просто чтоб было, так требуют, значит - добавим, не приходя в сознание и не осознавая задачу, которую решают типы в коде, часто сгенерированные AI и совершенно непрозрачные для человека, а значит, не прошедшие ревью, хрупкие и абсурдные конструкции. Я видел код Ильи и говорил с ним про TS, курса я не видел, но общие принципы, которые он хочет донести, я поддерживаю, нужно писать просто, но писать просто это не так просто, усложнять гораздо проще. Посмотрите, как элегантно пишет Илья, у него есть, чему научиться https://javascript.ninja/typescript

Update: Дали -30% промокод NODEUA
🤣22👍18😁42🔥1💯1
Мы масштабировали команду менторов и можем еще донабрать на курс Patterns. Ещё не поздно, неделю можно догнать.

Кроме того, если вы не можете сейчас, но рассчитываете пойти в 2026, то заполните форму заранее.

Цены завтра будут подняты, к выходным набор закрывается.

Поздний онбординг на курс Patterns:
https://forms.gle/r9gZCKU6RAAGo3q8A
🫡63👍1
Тут мои заметки из мастер-класса по парадигмам программирования, такой конспект, со снипетами для быстрого понимания о чем речь и примерами кода одного фрагмента на 46 разных стилях, это не 46 парадигм, но мы и говорили, что нет уже таких целостных правильных парадигм, есть те или иные отдельные свойства используемые для реализации идей. В результате, конструируем из них стили программирования: https://github.com/HowProgrammingWorks/Paradigms
🔥7👍2😁1🫡1
🎬 Режисерская версия стрима с Мурычем и Брагилевским про парадигмы программирования нарезана и собрана в один плейлист, кто не смотрел, вот тут все https://www.youtube.com/playlist?list=PLHhi8ymDMrQYveSqg-fFSbT3e3j1pYgbV
👍84🔥1🤩1
AI способен создавать 2.7 миллиона языков программирования в день
🔥15🤣122🫡2
Если у вас есть сомнения, как ему это поможет или другие вопросы по курсу Patterns, то можно получить консультацию от главного ментора курса Дмитрия Нечая, посьменно или созвон, заполнив форму: https://forms.gle/4h3VWbcdtvnWEotM6
2👍1🫡1
Любой руководитель, получив высокий уровень власти, может решить, что получил полный контроль над системой. Но стоит опуститься на уровень деталей - и его сразу придавит мощностью континуума. Кстати, это и со специалистами работает, которые отлично освоили высокоуровневый язык программирования, но за каждым оператором стоит много слоев компиляции, оптимизации, виртуализации, исполнения на конкретном железе. Копни туда и открывается непрерывная сложность: даже император не способен гарантировать, что в полдень в самом дальнем селе по его приказу все поднимут правую руку. Ошибки в коде исправить можно, но нельзя гарантировать, что вы за конечное время действительно поняли, что исправлено, и приказали коду работать правильно во всех случаях, инженеру не приходит гениальная мысль по команде, дети не смеются по расписанию, почтальон может заблудиться, а генерал - охрипнуть. Абсолютная надежность, она как скорость света, недостижима даже в мелочах.
19👍6💯41
Это выпускник курса Patterns празднует 2027 год в коллективе своей компании.

Воскресенье - последний шанс зарегистрироваться, потом догнать курс уже будет нереально, а следующего набора ждать примнрно 5 месяцев. https://nodeua.com/Patterns-2025
😁22🤣103👎1
💡 Как должен выглядеть стектрейс с 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
👍11🔥42
То, что Promis не монада, это общеизвестно, но нашлись люди, которые говорят, что Array монада, и что из Thenable нельзя сделать монаду, здесь доказательство про Thenable, о про Array даже говорить нет нужды, ну я надеюсь, что это очевидно... или нет? https://github.com/HowProgrammingWorks/Thenable/blob/master/JavaScript/b-monad.js
5👍3💯1