Node.js Recipes – Telegram
Node.js Recipes
3.23K subscribers
167 photos
7 videos
1 file
614 links
По буднях нотатки по #Nodejs розробці, по вихідним огляди конференцій та доповідей (с) @galkin_nikita
Download Telegram
List of 1000 JavaScript Interview Questions
#list

Сегодня в рекомендациях большая подборка вопросов для JS-интервью с ответами. Список содержит как открытые вопросы, так и тесты на понимания работы кода. Некоторые вопросы морально устарелы, но в целом репозиторий можно рекомендовать для подготовки к собеседованию на JS позицию.
👍28
Подборка node.recipes за январь 2022
#monthly_list

Рецепты для #nodejs разработчиков:
➡️ Что такое WICG?
➡️ Как TC39 предложения внедряются в TypeScript?
➡️ 15 Factor App
👉 Больше 100 share: Какие вопросы задать, чтобы проверить понимание Promise/async/await?
​​➡️ oclif.io – Open CLI Framework
➡️ Когда и как использовать navigator.sendBeacon?
➡️ 2021 JavaScript Rising Stars.
➡️ Как использовать assert для улучшения читабельности кода?
​​➡️ Как запустить Recorder в Chrome?
👉 Больше 100 share: Подборка книг для изучения TypeScript
​​➡️ Обновление Open Machine Learning Course
➡️ Как отследить работу Garbage Collector?
➡️ Как работать с Event Emitter в async/await стиле?
➡️ Подборка книг для изучения JavaScript
➡️ Как просто улучшить работу с git?
➡️ Тонкости работы с npm noscripts
➡️ Как узнать является ли текущий файл точкой запуска?
➡️ Какие инструменты упрощают парное программирование?
​​➡️ Что такое RegExp Named Capture Groups?
👉Больше 100 комментариев: Топ-5 заблуждений об работе JavaScript
➡️ List of 1000 JavaScript Interview Questions

Стоит посмотреть:
👀​​Road to production
​​👀Application integration patterns for microservices
👀Advanced TypeScript Playlist by Basarat
👀Create an Application Backend in Clicks with the Amplify Admin UI
👀llhttp - new HTTP 1.1 parser for Node.js
​​👀Testing Pyramid Makes Little Sense, What We Can Use Instead
👀GitHub Actions с GitHub Universe 2021
👀​How many hats should a DevRel wear?
👀Chrome 98 - What’s New in DevTools
👀​What’s Next for the GraphQL Spec?

Стоит послушать или прошедшие Voice chat:
🎤About Best Practices, в гостях Алексей Бобырь
🎤About Software Engineering, в гостях Тимуром Шемсединовым
🎤About Conferences, с Александр Макхомед и Ирина Божик
🎤About Nest.js, с Михаилом Яли

Анонсы конференции:
👍​​Node Congress
👍TheJam.dev
👍33🔥5
В конце сентября я писал о том, что сделал для Foxminded курс по #nodejs. Подход к составлению курсов в компании – фокус на практику без разжевывания теории, которую гуглят только когда больно. Курс окончил бета тестирование и обзавелся лендингом.

После составления курса я сопровождаю менторов и даже вел пару студентов. Отзыв одного из них:
Вообще сейчас твой курс реально выглядит как одна из лучших инвестиций в самообразование за долгое время — разумная порция боли и хорошее ощущение прогресса 🔥

Курс ориентирован на новичков в Node.js. Идеально подходит для Frontend разработчиков, которые хотят стать FullStack.
👉Запись на курс тут
Хороший код это простой код. Хороший код:
– просто читать
– просто повторно использовать
– просто, то есть без опасений, вносить изменения
На английском эти свойства звучат как Readability, Reusability и Refactorability...

Но мне пора остановиться. Иначе я начну пересказывать Ryan McDermott, который предложил реализацию Clean Code в JavaScript. Лучше прочитайте его в оригинале. У него есть два замечательных репозитория, в которых он объясняет зачем и как это делать.

Ссылки:
👉 Clean Code for JavaScript
👉 3 Rs of Software Architecture
🔥29👍92
Что такое Fetch Event Source?
#package #architecture

На канале был рецепт Что такое Race Condition на клиенте? В нем я рекомендовал использовать Server Sent Events. Это однонаправленный протокол от сервера к клиенту. Является отличной альтеранативой websocket-ам, которые являются двунаправленным протоколом.

На сервере все достаточно просто. Например, в Nest.js есть хорошая документация – server-sent-events. На клиенте все не так просто – у нативного браузерного EventSource API есть ряд ограничений: нельзя передавать custom headers, только Get. Правильной альтернативой является пакет @microsoft/fetch-event-source. Он одновременно обладает всеми фишками fetch и Server Sent Events. Рекомендую к использованию и сам протокол SSE, и клиентский пакет от microsoft. Кто знает, вдруг эту реализацию сделают встроенной в браузерные API.
👍12
Я соскучился по оффлайн конференциям. К сожалению, первую Киевскую JS конфу – React fwdays’22 –  я пропускаю. Он пройдет в формате Online+Offline 26 февраля. Также будет несколько дополнительных эфиров в будние дни.

Программа сформирована на 40%. Вот доклады, которые мне было бы интересней всего: 
🎤 Glenn Reyes выступит с докладом “Drawing the line between 3rd party and custom code”
🎤 Виктор Турский будет рассказывать о “Эффективной разработке с React”
🎤 Юлия Потапенко о ”Безопасности криптокошельков”

Конференция пройдет в гибридном формате с тремя вариантами участия:
1️⃣FREE ONLINE – просмотр докладов в free online треке (26 февраля)
2️⃣FULL ONLINE – просмотр докладов во всех треках (26 февраля) и дополнительных форматах, доступ к записям всех эфиров
3️⃣OFFLINE & ONLINE – все пункты, которые есть в пакете full online, а так же offline участие 26 февраля

👉Регистрируйтесь бесплатно или используйте промокод на скидку 7% - 66BD1D1B54.
👉Детали по ссылке https://bit.ly/3J58VKB
👍6😢1
#announcement

На этой неделе #voice_chat будет с Виктором Турским, Senior Software Engineer at Google, Non-Executive Director at WebbyLab, автором @jabanoscript.
Когда: в четверг, 10 февраля, в 21:00 по Киеву
Где: https://news.1rj.ru/str/node_recipes?voicechat

Агенда будет составлена на основание ваших вопросов из комментариев к этому посту.

До встречи в эфире!
👍152
Live stream scheduled for
#announcement

В этот четверг, 10 февраля, я буду на стриме у Сергея Немчинского. Будем обсуждать Cloud Native и Node.js.

Начало в 15:00 по Киеву.
👉 Смотреть тут
👍16🔥11
Что нового в Nodejs 16.14.0?

Вчера вышел минорный патч для LTS версии. Основным заявленным изменением является обязательное использование Import Assertions (stage 3) с JSON-модулями. Это решение было принято для сохранения совместимости с веб-платформой. Т.е. это изменение важно для FE разработчиков.

В релизе есть новые важные фичи для #nodejs разработчиков, которые упрощают разработку. Обратите внимание, что они имеют Experimental индекс стабильности. Т.е. вы их можете использовать в проде только на свой страх и риск.

👉 Улучшение работы Readable Streams
Добавленые filter и map, а так же helper isReadable. Удобство работы со встроенными стримами становиться сопостовимо с rxjs.
👉 Улучшение работы AbortSignal
Добавили abortSignal.reason и AbortSignal.timeout(delay)
👉 process.getActiveResourcesInfo
Раньше чтобы посмотреть, что держит активным EventLoop необходимо было использовать недокументированные process._getActiveResources().
👉 Scheduler в promise timers
Является Node.js реализацией предложения Prioritized Task Scheduling. Позволяет писать:
import { scheduler } from 'timers/promises';
await scheduler.wait(1000);
Очевидно, улучшает синтаксис setTimeout из timers/promises.

Официальные release notes тут
🔥35👍1
Стартуем стрим у Сергея Немчинского. Будем обсуждать Cloud Native и Node.js.

👉 Смотреть тут
👍18🔥9
Audio
#voice_chat About Work at Google c Виктором Турским, Senior Software Engineer at Google, Non-Executive Director at WebbyLab, автором @jabanoscript.

Ссылки упомянутый в ходе дискуссии:
🔗 Эффективная разработка NodeJS приложений
🔗 Node.js starter от Виктора
🔗 my-talks.net – сервис где можно подписаться на докладчиков, сделанный Виктором
🔗 www.algoexpert.io – платный сервис для подготовки к интервью
🔥18👍111🥰1
Что такое npm overrides?
#cli #npm

Делая обзор Nodejs 16.14.0, я не рассказал об обновление версии npm с 8.1.2 до 8.3.1. Основной фичей обновления является overrides, т.е. переопределение версий пакетов в зависимостях второго+ уровня. Это аналог resolutions в yarn. Чаще всего это нужно, чтобы заменить версию зависимости с известной проблемой безопасности. Реже, чтобы везде использовать одна и ту же версия пакета. Теперь npm догнал yarn не только по скорости, но и по необходимым фичам.

Подробней в ссылках:
🔗 npm overrides
🔗 yarn resolutions
👍24🎉3
Напоминаю #conference nodecongress.com уже завтра!
🔥10👍2
В прошлом году я делал рецепт Как документировать логику? в котором рекомендовал использовать в коде и документации PlantUML. Его наиболее близкий конкурентом является Mermaid, который тоже позволяет описывать диаграммы в текстовом виде.

На этой неделе GitHub объявил о поддержке mermaid код блоков. Теперь вы можете использовать диаграммы в вашей документации и GitHub issues. Пример на картинке или по ссылке в GitHub блоге.
👍31🔥14
Какие вопросы задать, чтобы проверить понимание Nodejs perfomance?
#list

Сегодня поделюсь подборкой моих вопросов для интервью по работе с оптимизацией Node.js perfomance. Естественно без ответов, иначе как мне потом их на собеседованиях спрашивать.

1. Какие метрики Node.js процесса вы используете? Как их собираете?
2. Что такое Еvent Loop Latency? Как он рассчитывается?
3. Покажите в вашем коде где вы конфигурируете database connection pool? Как он работает и за что отвечает?
4. Какие способы измерения latency http ответов вы знаете?
5. Каким образом вы определяете bottleneck в вашей системе в целом? А в коде?
6. DevOps команда выдвинула гипотезу, что приложение тормозит из-за логирования. Каким образом вы будете проверять эту гипотезу?
7. Назовите способы ускорения Node.js приложения, которые вы использовали.
👍30😱3🔥1🥰1
Куда развивается Reactive Programming в Node.js?

TL;DR; С выходом 18-й LTS версии встроенные Node.js Streams станут альтернативой RxJS.

Начну с определения: реактивное программирование – это парадигма программирования ориентированная на потоки данных. Т.е. вместе операций над статическими данными, мы оперируем потоками. Упрощенно говоря, поток данных это массив, где каждый элемент имеет привязку к временной оси.

В javanoscript комьюнити основной тренд реализации реактивного программирования это RxJS. Основной драйвер это развития Angular. Nest.js, созданный на его основе, работает с RxJS из коробки. Так Interceptors построены именно на RxJS.

Реализовывать подходы реактивное программирования на чистых Node.js Streams требует много самописного кода или использование библиотек, которые не так развиты/поддерживаются как RxJS. Однако в 16.14.0 версии Node.js были добавлены filter и map для работы с Readable Streams. В экспериментальной ветке (17-ой) реактивных методов больше:
– readable.forEach(fn[, options])
– readable.toArray([options])
– readable.some(fn[, options])
– readable.find(fn[, options])
– readable.every(fn[, options])
– readable.flatMap(fn[, options])
– readable.drop(limit[, options])
– readable.take(limit[, options])
– readable.asIndexedPairs([options])
– readable.reduce(fn[, initial[, options]])

До выхода 18-й версии в LTS, что произойдет в октября 2022, их станет больше. Надеюсь, их Stability Index переведут из экспериментального в стабильный.
👍36🔥14👎1🤔1
Channel photo updated
Моя страна атакована, мой город атакован, не хочу делать вид, что этот канал вне политики.
👍9584👎6😢3
Forwarded from Good dev knows
Моя страна атакована, мой город атакован, не хочу делать вид, что этот канал вне политики.

Сегодня Путин объявил войну Украине, мотивируя свои действия идеями "денацификации". Это полная чушь и не имеет ничего общего с реальностью. Когда я жил в Украине я ездил в Донецк и отлично проводил там время. Я ездил во Львов, говорил там по-русски, и отлично проводит там время. Народ Украины и власть, которую украинцы выбрали в ходе демократических выборов, хочет одного — жить мирно и счастливо.

Никакого конфликта между украинцами и русскоговорящими нет и не было. Есть лишь клептократическая власть в России, которая преследует лишь свои интересы и борется со своими страхами. Борется ценой свободы других людей — украинцев, россиян, всего мира. Разрушая, вместо того, чтобы создавать и работать вместе.

Я знаю, что в этом канале много россиян. Посмотрите обращение президента Зеленского к россиянам (на русском с 02:03).

Всех призываю помочь фонду "Повернись живим". Это можно сделать тут:
* https://www.patreon.com/savelife_in_ua
* https://savelife.in.ua/donate/

Переживаю, но верю в будущее 🇺🇦
👍8472😢1
Я прошу прощения у тех из вас, кто ждет тут постов о разработке. Когда-нибудь они вернуться. Просто напомню, что авторский канал. Раньше у меня не было возможности написать развернутый пост о том, что происходит. Я просто сделал репост из дружественного канала. Вот то, что я думаю по этому поводу происходящего.

Я до последнего момента не верил, что Российская Федерация нападет на Украину, но это произошло. Я был не прав. Третий день в моей стране идет настоящая война.

Моя первая мысль была, что война будет быстро проиграна – я не верил в КВНщика Зеленского. Я был не прав. Я смотрю его пятиминутки в FB и горжусь им.

Вчера я был зол из-за слабости санкций. На их фоне мне было больно наблюдать, как российский фондовый рынок восстанавливается после падения. Я не хочу смертей: ни в Украине, ни в РФ. Я хочу экономических последствий.

Вчера я читал новости о войне и о санкциях я думал, что РФ снова все сойдет с рук. Но я снова был не прав. Прямо сейчас РФ отключают от SWIFT, перестают работать Visa и MasterCard выданные санкционными банками.

Возможно, я снова буду не прав, но сегодня я читаю новости и у меня есть надежда, что моя страна выстоит. Один из таких источников информации это @UkrainianWitness. Всех читателей прошу загляните в него. Как я понимаю, это канал от редакции DOU и проекта "Повернись живим".
140👍23🔥12👎4💩1