Mo'Problems, Mo'Nads by Kyle Simpson
#worth_seeing
Кайл Симпсон – автор серии книг "You Don't Know JS". В сегодняшнем докладе он рассказывает о том, что такое монады. Кайл проводит аналогию монад и регулярных выражений. И то, и другое не является популярный при написание коммерческого кода. Такие приемы увеличивает когнитивную сложность кода, а ее следует упрощать. Поэтому Кайл неоднократно предупреждает, что монады могут быть плохим решением в некоторых случаях. Тем не менее знать о существование такого подхода стоит, хотя бы для общей эрудиции.
📕Slides
📕Functional Light JS
#worth_seeing
Кайл Симпсон – автор серии книг "You Don't Know JS". В сегодняшнем докладе он рассказывает о том, что такое монады. Кайл проводит аналогию монад и регулярных выражений. И то, и другое не является популярный при написание коммерческого кода. Такие приемы увеличивает когнитивную сложность кода, а ее следует упрощать. Поэтому Кайл неоднократно предупреждает, что монады могут быть плохим решением в некоторых случаях. Тем не менее знать о существование такого подхода стоит, хотя бы для общей эрудиции.
📕Slides
📕Functional Light JS
YouTube
Mo’Problems, Mo’Nads - Kyle Simpson - CityJS Conf 2020
Kyle Simpson is Director of Web Futures at Getify Solutions, where he envisions and evangelizes what's next for Open Web technologies, especially JS. He writes, speaks, teaches, and codes OSS.
_________________________________________________________________…
_________________________________________________________________…
#announcement
15 июня выступаю с докладом об TDD в #nodejs. Это будет совместный доклад с Львовской компанией Sombra.
Доклад начинается с обзора типичной пирамиды тестирования для Node.js проекта. На каждом уровне расскажу лучшие TDD практики и покажу какие npm пакеты использую.
Участие бесплатно, а регистрация уже доступна:
🔗 Facebook: https://fb.me/e/XPqCaXEr
🔗 Restration Form: https://us02web.zoom.us/meeting/register/tZYvcu6gqzIuG9WgFmZUja4lP-5wlsYraKhu
15 июня выступаю с докладом об TDD в #nodejs. Это будет совместный доклад с Львовской компанией Sombra.
Доклад начинается с обзора типичной пирамиды тестирования для Node.js проекта. На каждом уровне расскажу лучшие TDD практики и покажу какие npm пакеты использую.
Участие бесплатно, а регистрация уже доступна:
🔗 Facebook: https://fb.me/e/XPqCaXEr
🔗 Restration Form: https://us02web.zoom.us/meeting/register/tZYvcu6gqzIuG9WgFmZUja4lP-5wlsYraKhu
Как итерировать массив?
#code_pattern
Проводя интервью, я практикую live coding, то есть решение простых задач со скриншарингом экрана. Так сразу видно пишет ли кандидат код на современном JavaScript.
Итерировать массив можно 4-мя способами:
1️⃣ for
2️⃣ forEach
3️⃣ for in
4️⃣ for of
Упрощенный анализ показывают, что 1️⃣и 3️⃣ создают ненужную переменную, а 2️⃣– контекст ненужной функции. Поэтому при написание кода старайтесь использовать 4️⃣ for of.
Бенчмарки и глубокий анализ можно провести самостоятельно или нагуглить. Вместо этого я порекомендую добавить к себе в проект eslint правило disallow forEach. Это же можно сделать с помощью no-restricted-syntax и селектора
#code_pattern
Проводя интервью, я практикую live coding, то есть решение простых задач со скриншарингом экрана. Так сразу видно пишет ли кандидат код на современном JavaScript.
Итерировать массив можно 4-мя способами:
1️⃣ for
for (let i = 0; i < arr.length; ++i) { console.log(arr[i]);}2️⃣ forEach
arr.forEach((v, i) => console.log(v));3️⃣ for in
for (let i in arr) { console.log(arr[i]);}4️⃣ for of
for (const v of arr) { console.log(v);}Упрощенный анализ показывают, что 1️⃣и 3️⃣ создают ненужную переменную, а 2️⃣– контекст ненужной функции. Поэтому при написание кода старайтесь использовать 4️⃣ for of.
Бенчмарки и глубокий анализ можно провести самостоятельно или нагуглить. Вместо этого я порекомендую добавить к себе в проект eslint правило disallow forEach. Это же можно сделать с помощью no-restricted-syntax и селектора
CallExpression[callee.property.name="forEach"]😁4🤯2
Как успевать за развитием web-development?
#announcement #discount #chrome
В современном веб-строе нужно постоянно учиться. Как говорила Алиса: "Нужно бежать из-за всех сил, чтобы оставаться на месте". Технологии, фреймворки, подходы появляются быстрее, чем ты успеваешь читать Release Notes. По моему скромному мнению, "виноваты" в этом разработчики браузеров. Они выпускают апдейты слишком часто. Вдумайтесь, Google Chrome с 3-го квартала 2021 перейдет с 6-недельного релиз цикла на 4-х недельный.
Один из моих способов бежать чуть быстрее – использовать для повседневной работы Beta Google Chrome Channel. В этом release channel версия Chrome идет с опережением на месяц. Это ведь круто, когда ты отлавливаешь ошибки вызванные изменение в браузерах на месяц раньше, чем они будут у пользователей?
Еще в моем списки ускорялок – слушать доклада с конференций и учиться у лучших. Один из таких это Виталий Фридман. Я буду проходить его воркшоп для Front-End разработчиков, который стартует в эту среду. Присоединяйтесь! Детали:
➡️ 5 дней в первой половине дня по 2.5 часа
➡️ контента на 1500 слайдов
➡️ возможность как задать вопросы в живую, так и посмотреть в записи
🤑 Промокод: node_recipes на 15%
🔗 Подробности: http://bit.ly/Vitaly-Friedman-2021
#announcement #discount #chrome
В современном веб-строе нужно постоянно учиться. Как говорила Алиса: "Нужно бежать из-за всех сил, чтобы оставаться на месте". Технологии, фреймворки, подходы появляются быстрее, чем ты успеваешь читать Release Notes. По моему скромному мнению, "виноваты" в этом разработчики браузеров. Они выпускают апдейты слишком часто. Вдумайтесь, Google Chrome с 3-го квартала 2021 перейдет с 6-недельного релиз цикла на 4-х недельный.
Один из моих способов бежать чуть быстрее – использовать для повседневной работы Beta Google Chrome Channel. В этом release channel версия Chrome идет с опережением на месяц. Это ведь круто, когда ты отлавливаешь ошибки вызванные изменение в браузерах на месяц раньше, чем они будут у пользователей?
Еще в моем списки ускорялок – слушать доклада с конференций и учиться у лучших. Один из таких это Виталий Фридман. Я буду проходить его воркшоп для Front-End разработчиков, который стартует в эту среду. Присоединяйтесь! Детали:
➡️ 5 дней в первой половине дня по 2.5 часа
➡️ контента на 1500 слайдов
➡️ возможность как задать вопросы в живую, так и посмотреть в записи
🤑 Промокод: node_recipes на 15%
🔗 Подробности: http://bit.ly/Vitaly-Friedman-2021
Voice Chat #3, About GraphQL, 27 Мая 21:00-22:00 (GMT+3)
#announcement #voice_chat
Гость: Павел Черторогов, евангелист GraphQL. Хоть он и не любит слово евангелист ))) Работает архитектором информационных систем в казахстанской хостинговой компании ps.kz. Занимается построением консли для управления облачными услугами.
Вопросы:
❓ Что такое GraphQL? Где его стоит, а где не стоит применять?
❓ Каков идеальный тех стэк для GraphQL проекта в 2021?
❓ GraphQL паттерны – микросервисы, кодогенерация, федерация и т.д? Какие инструменты?
❓ Как тестировать GraphQL проект?
Ссылка для подключения: https://news.1rj.ru/str/node_recipes?voicechat
До встречи в эфире!
#announcement #voice_chat
Гость: Павел Черторогов, евангелист GraphQL. Хоть он и не любит слово евангелист ))) Работает архитектором информационных систем в казахстанской хостинговой компании ps.kz. Занимается построением консли для управления облачными услугами.
Вопросы:
❓ Что такое GraphQL? Где его стоит, а где не стоит применять?
❓ Каков идеальный тех стэк для GraphQL проекта в 2021?
❓ GraphQL паттерны – микросервисы, кодогенерация, федерация и т.д? Какие инструменты?
❓ Как тестировать GraphQL проект?
Ссылка для подключения: https://news.1rj.ru/str/node_recipes?voicechat
До встречи в эфире!
Как и зачем проверить, что код запущен под нужной версий Node.js?
#nodejs_api
Использование свежих фич #nodejs или новых синтаксических конструкция языка приводит к тому, что ваше приложение не сможет работать под старой версий. Примеры:
➡️ crypto.randomUUID – свежая фича для нативной генерации UUID 4
➡️ Различное поведения Date в зависимости от версии V8. Пример
Поэтому стоит проверять версию и выкидывать не обработанное исключение, если код запущен под неверной версией. Делать это необходимо в entry-point файле, с которого идет запуск всего приложения.
Пример проверки только мажорной версии:
Пример проверки всей версии:
Поле engines внутри package.json носит рекомендательный характер и не используется при запуске приложения ни через npm run noscripts, ни напрямую. При желание его можно использовать на уровне кода после
#nodejs_api
Использование свежих фич #nodejs или новых синтаксических конструкция языка приводит к тому, что ваше приложение не сможет работать под старой версий. Примеры:
➡️ crypto.randomUUID – свежая фича для нативной генерации UUID 4
➡️ Различное поведения Date в зависимости от версии V8. Пример
Поэтому стоит проверять версию и выкидывать не обработанное исключение, если код запущен под неверной версией. Делать это необходимо в entry-point файле, с которого идет запуск всего приложения.
Пример проверки только мажорной версии:
const nodeVersion = process.versions.node.split('.')[0];if (nodeVersion !== '14') throw new Error(`App requires node.js version 14`);Пример проверки всей версии:
const nodeVersion = process.versions.node;if (nodeVersion !== '14.17.0') throw new Error(`App requires node.js version 14.17.0`);Поле engines внутри package.json носит рекомендательный характер и не используется при запуске приложения ни через npm run noscripts, ни напрямую. При желание его можно использовать на уровне кода после
require('./package.json'). В комментариях, есть пример от Александра.Как автоматизировать работу с git?
#cli #git
У git есть малодокументированная возможность – external commands, то есть команды определенные пользователем. Упрощено говоря, git somename это алиас для команды git-somename.
Использовать можно так:
1️⃣ Смотрим зарегистрированные пути
2️⃣ Выбираем папку из 1️⃣, где мы будем создавать команду.
3️⃣ Делаем файл с нашей команда git-done и таким контентом:
4️⃣ Делаем файл исполняемым
Так мы создали команду
Обратите внимание на первую строчку #!/usr/bin/env bash, после #! (shebang) идет интепритатор. Для написания скрипта на #nodejs используется конструкция #!/usr/bin/env node
Можно установить один из готовых скриптов:
Так же для проектов с GitHub рекомендую посмотреть cli.github.com
#cli #git
У git есть малодокументированная возможность – external commands, то есть команды определенные пользователем. Упрощено говоря, git somename это алиас для команды git-somename.
Использовать можно так:
1️⃣ Смотрим зарегистрированные пути
echo $PATH.2️⃣ Выбираем папку из 1️⃣, где мы будем создавать команду.
3️⃣ Делаем файл с нашей команда git-done и таким контентом:
#!/usr/bin/env bashDEFAULT_BRANCH=masterCURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2)git checkout ${DEFAULT_BRANCH}git pullgit branch -D ${CURRENT_BRANCH}4️⃣ Делаем файл исполняемым
chmod +x git-doneТак мы создали команду
git done, которая удаляет активную ветку и переключает на master. У меня это команда еще передвигает текущую задачу в следующую колонку в Jira.Обратите внимание на первую строчку #!/usr/bin/env bash, после #! (shebang) идет интепритатор. Для написания скрипта на #nodejs используется конструкция #!/usr/bin/env node
Можно установить один из готовых скриптов:
npm install -g git-open. Он будет открывать текущую ветку в вашем репозитории. ПодробностиТак же для проектов с GitHub рекомендую посмотреть cli.github.com
Анонсы одной строкой
#announcement
➡️ Сегодня, через 20 минут: Google Cloud Jam в рамках комьюнити GDG Cloud Kyiv. https://news.1rj.ru/str/GDGCloudKyiv/4
➡️ Завтра: Voice Chat о GraphQL. https://news.1rj.ru/str/node_recipes/129
➡️ На следующей неделе: мой доклад по Nest.js в рамках FWDays. https://news.1rj.ru/str/fwdays/701
#announcement
➡️ Сегодня, через 20 минут: Google Cloud Jam в рамках комьюнити GDG Cloud Kyiv. https://news.1rj.ru/str/GDGCloudKyiv/4
➡️ Завтра: Voice Chat о GraphQL. https://news.1rj.ru/str/node_recipes/129
➡️ На следующей неделе: мой доклад по Nest.js в рамках FWDays. https://news.1rj.ru/str/fwdays/701
Telegram
GDG Cloud Kyiv
Через 2ч 15м будем начинать. Возможность подключиться появиться за 15 минут до начал. Вот видео как это сделать.
А вот инструкция по qwiki аккаунту:
1. Откройте в режиме инкогнито go.qwiklabs.com/cloud-study-jams-2020
2. Нажмите Enroll под Build a Website…
А вот инструкция по qwiki аккаунту:
1. Откройте в режиме инкогнито go.qwiklabs.com/cloud-study-jams-2020
2. Нажмите Enroll под Build a Website…
👍1
Что нового в TypeScript 4.3?
#typenoscript
Вчера вышла новая версия TypeScript 4.3.
Основной фокус релиза в работе с классами. Сюда входят:
➡️ новое ключевого слово
➡️ разделение типов для getter и setter (Separate Write Types on Properties)
➡️ Улучшена поддержка приватных ECMAScript
➡️
➡️ Type helper
Связанное с типами:
➡️ Always-Truthy Promise Checks, для случаев аналогичных eslint правилу
➡️ Template String Type Improvements, нужная вещь если у вас сложная бизнес логика в зависимости от строк.
➡️ Улучшено определение типа по контексту (Contextual Narrowing for Generics).
Улучшения процесса сборки:
➡️ Размер
➡️ Инкрементная сборка в первый раз теперь идет так же быстро как и обычная. Наконец-то можно выкинуть tsconfig.dev.json!
Улучшения IDE поддержки, работает за счет TypeScript’s language service. Важно для VS Code, не важно для JetBrains.
➡️ Import Statement Completions
➡️
➡️ Go-to-Definition on Non-JavaScript File Paths
#typenoscript
Вчера вышла новая версия TypeScript 4.3.
Основной фокус релиза в работе с классами. Сюда входят:
➡️ новое ключевого слово
override указывающее, что метод переопределен в ходе наследования. Выкидывает ошибку, если у родителя нет метода➡️ разделение типов для getter и setter (Separate Write Types on Properties)
➡️ Улучшена поддержка приватных ECMAScript
#private➡️
static Index Signatures➡️ Type helper
ConstructorParameters теперь работает и с абстрактными классамиСвязанное с типами:
➡️ Always-Truthy Promise Checks, для случаев аналогичных eslint правилу
require-await➡️ Template String Type Improvements, нужная вещь если у вас сложная бизнес логика в зависимости от строк.
➡️ Улучшено определение типа по контексту (Contextual Narrowing for Generics).
Улучшения процесса сборки:
➡️ Размер
.tsbuildinfo теперь меньше➡️ Инкрементная сборка в первый раз теперь идет так же быстро как и обычная. Наконец-то можно выкинуть tsconfig.dev.json!
Улучшения IDE поддержки, работает за счет TypeScript’s language service. Важно для VS Code, не важно для JetBrains.
➡️ Import Statement Completions
➡️
@link в js-doc➡️ Go-to-Definition on Non-JavaScript File Paths
Microsoft News
Announcing TypeScript 4.3
Today we’re excited to announce the availability of TypeScript 4.3! If you’re not yet familiar with TypeScript, it’s a language that builds on JavaScript by adding syntax for static types. Tools like the TypeScript compiler can just erase TypeScript syntax…
Audio
#voice_chat
Гость: Павел Черторогов, евангелист GraphQL. Хоть он и не любит слово евангелист ))) Работает архитектором информационных систем в казахстанской хостинговой компании ps.kz. Занимается построением консоли для управления облачными услугами.
Вопросы:
❓ Что такое GraphQL? Где его стоит, а где не стоит применять?
❓ Каков идеальный тех стэк для GraphQL проекта в 2021?
❓ GraphQL паттерны – микросервисы, кодогенерация, федерация и т.д? Какие инструменты?
❓ Как тестировать GraphQL проект?
Все свои выступления, презентации и статьи про GraphQL Паша публикует в своем github репозитории: https://github.com/nodkz/conf-talks
Подписывайтесь на Пашу в соцсетя:
🔗 https://twitter.com/nodkz
🔗 https://github.com/nodkz
Делитесь в комментариях ссылками и впечатлениями.
Гость: Павел Черторогов, евангелист GraphQL. Хоть он и не любит слово евангелист ))) Работает архитектором информационных систем в казахстанской хостинговой компании ps.kz. Занимается построением консоли для управления облачными услугами.
Вопросы:
❓ Что такое GraphQL? Где его стоит, а где не стоит применять?
❓ Каков идеальный тех стэк для GraphQL проекта в 2021?
❓ GraphQL паттерны – микросервисы, кодогенерация, федерация и т.д? Какие инструменты?
❓ Как тестировать GraphQL проект?
Все свои выступления, презентации и статьи про GraphQL Паша публикует в своем github репозитории: https://github.com/nodkz/conf-talks
Подписывайтесь на Пашу в соцсетя:
🔗 https://twitter.com/nodkz
🔗 https://github.com/nodkz
Делитесь в комментариях ссылками и впечатлениями.
Как посчитать нарастающий итог?
#database
Частая ошибка начинающих #nodejs разработчиков – лишняя нагрузка CPU. Один из методов разгрузить CPU это использование базы данных для расчетов. Большинство разработчиков используют агрегатные функции, но не оконные. Возможно, их отпугивает название, которое на английском звучит как OS от Microsoft – windows.
На картинке к рецепту вы видите различие работы агрегатных и оконных функций. В качестве примера, решим SQL задачу.
Дана схема:
Вывести историю операций пользователя с балансом на момент окончания операции.
Решение будет иметь вид:
Ссылки:
🔗 пример в db-fiddle,
🔗 документация по windows функциям.
#database
Частая ошибка начинающих #nodejs разработчиков – лишняя нагрузка CPU. Один из методов разгрузить CPU это использование базы данных для расчетов. Большинство разработчиков используют агрегатные функции, но не оконные. Возможно, их отпугивает название, которое на английском звучит как OS от Microsoft – windows.
На картинке к рецепту вы видите различие работы агрегатных и оконных функций. В качестве примера, решим SQL задачу.
Дана схема:
CREATE TABLE users ( id SERIAL PRIMARY KEY, email varchar(100) NOT NULL);CREATE TABLE operations ( id SERIAL PRIMARY KEY, user_id int4 NOT NULL, amount int4 NOT NULL, created_at timestamp DEFAULT now(), FOREIGN KEY(user_id) REFERENCES users(id));Вывести историю операций пользователя с балансом на момент окончания операции.
Решение будет иметь вид:
SELECT *, SUM(amount) OVER (PARTITION BY user_id order by created_at) as balance FROM operations;Ссылки:
🔗 пример в db-fiddle,
🔗 документация по windows функциям.
Top 8 web things to know from Google I/O 2021
#worth_seeing
На прошлой неделе прошел Google I/O 2021. Это конференция, где Google показывает свои новинки, в том числе и связанные c Google Chrome. Рекомендуемое к просмотру видео показывает 8 новинок и занимает всего на 4 минуты. Так же есть полная версию What's new for the web platform на полчаса.
На #nodejs разработку может повлиять анонсированная поддержка WebAssembly SIMD внутри Google Chrome. SIMD расшифровывается как Single Instruction, Multiple Data. С его помощью можно ускорить расчеты, например обработку изображений, видео и т.д. Подробней, что такое SIMD. Мы получим обновленную версию v8 с его поддержкой в v16 Node.js. Пока я не видел обоснованного использования WebAssembly на бэкенде, но инструмент явно интересный.
#worth_seeing
На прошлой неделе прошел Google I/O 2021. Это конференция, где Google показывает свои новинки, в том числе и связанные c Google Chrome. Рекомендуемое к просмотру видео показывает 8 новинок и занимает всего на 4 минуты. Так же есть полная версию What's new for the web platform на полчаса.
На #nodejs разработку может повлиять анонсированная поддержка WebAssembly SIMD внутри Google Chrome. SIMD расшифровывается как Single Instruction, Multiple Data. С его помощью можно ускорить расчеты, например обработку изображений, видео и т.д. Подробней, что такое SIMD. Мы получим обновленную версию v8 с его поддержкой в v16 Node.js. Пока я не видел обоснованного использования WebAssembly на бэкенде, но инструмент явно интересный.
YouTube
Top 8 web things to know from Google I/O 2021
Want the highlights of Chrome Developer Keynote? We’ve got you covered! Learn what’s new for the web platform in this recap as we share how the web is evolving, the privacy sandbox, and many more new capabilities such as major performance boosts and enhanced…
JavaScript fwdays’21
#conference
На следущей неделе будет онлайн-конференция JavaScript fwdays’21. Уверен, что вы знаете этот бренд.
Программа конференции из состоит из докладов по вечерам в будние дни и в дневных в выходные. Подробней можно посмотреть на сайте. Бесплатные билеты позволяют посмотреть стрим. Если вы хотите посмотреть доклад в записи, то стоит приобрести билет. Это хороший способ поддержать конференцию, которая заботиться о комьюнити.
➡️ Регистрация: https://fwdays.com/en/event/javanoscript-fwdays-2021
💵 Цена: 60$, промокод на 10% – node_recipes_friends
Я не буду делать традиционный обзора программы конференции, а пойду готовить свой доклад Deep dive Into NestJS. Он уже 1-го числа вечером. До встрече на стриме.
#conference
На следущей неделе будет онлайн-конференция JavaScript fwdays’21. Уверен, что вы знаете этот бренд.
Программа конференции из состоит из докладов по вечерам в будние дни и в дневных в выходные. Подробней можно посмотреть на сайте. Бесплатные билеты позволяют посмотреть стрим. Если вы хотите посмотреть доклад в записи, то стоит приобрести билет. Это хороший способ поддержать конференцию, которая заботиться о комьюнити.
➡️ Регистрация: https://fwdays.com/en/event/javanoscript-fwdays-2021
💵 Цена: 60$, промокод на 10% – node_recipes_friends
Я не буду делать традиционный обзора программы конференции, а пойду готовить свой доклад Deep dive Into NestJS. Он уже 1-го числа вечером. До встрече на стриме.
Fwdays
JavaScript fwdays’21 conference
Online conference for JavaScript developers
What's Next, The Future of Node.js
#worth_seeing
Вы знаете, кто такой Майкл Доусон (Michael Dawson)? Уже 6 лет он член комитета отвечающего за развитие #nodejs. На английском это звучит как Collaborator and Technical Steering Committee member. Его можно увидеть почти на любом видео с заседаний Node.js working groups в youtube канале nodejs-foundation.
Не буду представлять столь подробно двух других участников сегодняшнего видео. Они, как и Майкл, члены Node.js working groups. Таких группы больше десятка. Часть видео как раз об этих группах.
Это видео затрагивает Node.js Roadmap, точнее почему у Node.js подобен самураю, у которого нет цели, а есть только путь. Идет речь об LTS циклах и стабильности. Разбирается, почему Major релизы зачастую не имеют новых фич. Они идут в минорных релизах. В завершение показывается как внести свой вклад в развитие Node.js.
Рекомендую посмотреть видео, чтобы лучше понять как именно развивается Node.js как платформа.
#worth_seeing
Вы знаете, кто такой Майкл Доусон (Michael Dawson)? Уже 6 лет он член комитета отвечающего за развитие #nodejs. На английском это звучит как Collaborator and Technical Steering Committee member. Его можно увидеть почти на любом видео с заседаний Node.js working groups в youtube канале nodejs-foundation.
Не буду представлять столь подробно двух других участников сегодняшнего видео. Они, как и Майкл, члены Node.js working groups. Таких группы больше десятка. Часть видео как раз об этих группах.
Это видео затрагивает Node.js Roadmap, точнее почему у Node.js подобен самураю, у которого нет цели, а есть только путь. Идет речь об LTS циклах и стабильности. Разбирается, почему Major релизы зачастую не имеют новых фич. Они идут в минорных релизах. В завершение показывается как внести свой вклад в развитие Node.js.
Рекомендую посмотреть видео, чтобы лучше понять как именно развивается Node.js как платформа.
YouTube
What's Next, The Future of Node.js - Joe Sepi, Michael Dawson and Bethany Griggs
Presented by Joe Sepi, Michael Dawson and Bethany Griggs
Want to know what is next for Node.js? New features? Major changes? What’s controversial? Key initiatives at the technical and organisational level?
- Learn about new features in the latest versions…
Want to know what is next for Node.js? New features? Major changes? What’s controversial? Key initiatives at the technical and organisational level?
- Learn about new features in the latest versions…
Подборка node.recipes за май 2021
#monthly_list
Рецепты для #nodejs разработчиков:
➡️ Что такое Race Condition на клиенте?
➡️ Как использовать cron в Node.js?
➡️ Как запускать Node.js с доп. аргументами?
➡️ Как документировать логику?
➡️ Что такое Floating Promise и почему это опасно?
➡️ Как уменьшить потребление памяти во время TypeScript компиляции?
➡️ Что такое .npmrc и почему его стоит добавить?
➡️ Как определить не используемые зависимости?
➡️ В чем проектировать структуру базы данных?
➡️ Как понять запущен ли Node.js внутри Docker?
➡️ Какая связь у UUID и MD5?
➡️ refactoring.guru
➡️ Как работает Readonly в TypeScript?
➡️ Как итерировать массив?
➡️ Как успевать за развитием web-development?
➡️ Как и зачем проверить, что код запущен под нужной версий Node.js?
➡️ Как автоматизировать работу с git?
➡️ Как посчитать нарастающий итог?
Обзор релизов:
🚀 Node.js 14.17
🚀 Что нового в TypeScript 4.3?
Freebies:
🤑 MongoDB University
Доклады, которые стоит посмотреть:
👀 How to Build and Run Node Apps with Docker and Compose
👀 42 WebStorm Tips and Tricks
👀 Зачем нужен тип "true" в TypeScript?
👀 HTTP/3 by Daniel Stenberg
👀 10 Things I Regret About Node.js
👀 Serverless by Stefan Judis
👀 Mo'Problems, Mo'Nads by Kyle Simpson
👀 Top 8 web things to know from Google I/O 2021
👀 What's Next, The Future of Node.js
Voice Chats:
🎤 Q&A
🎤 About Node.js Job Market, в гостях Алеся Кулакова
🎤 About testing, в гостях Хотемской Александр
🎤 About GraphQL, в гостях Павел Черторогов
#monthly_list
Рецепты для #nodejs разработчиков:
➡️ Что такое Race Condition на клиенте?
➡️ Как использовать cron в Node.js?
➡️ Как запускать Node.js с доп. аргументами?
➡️ Как документировать логику?
➡️ Что такое Floating Promise и почему это опасно?
➡️ Как уменьшить потребление памяти во время TypeScript компиляции?
➡️ Что такое .npmrc и почему его стоит добавить?
➡️ Как определить не используемые зависимости?
➡️ В чем проектировать структуру базы данных?
➡️ Как понять запущен ли Node.js внутри Docker?
➡️ Какая связь у UUID и MD5?
➡️ refactoring.guru
➡️ Как работает Readonly в TypeScript?
➡️ Как итерировать массив?
➡️ Как успевать за развитием web-development?
➡️ Как и зачем проверить, что код запущен под нужной версий Node.js?
➡️ Как автоматизировать работу с git?
➡️ Как посчитать нарастающий итог?
Обзор релизов:
🚀 Node.js 14.17
🚀 Что нового в TypeScript 4.3?
Freebies:
🤑 MongoDB University
Доклады, которые стоит посмотреть:
👀 How to Build and Run Node Apps with Docker and Compose
👀 42 WebStorm Tips and Tricks
👀 Зачем нужен тип "true" в TypeScript?
👀 HTTP/3 by Daniel Stenberg
👀 10 Things I Regret About Node.js
👀 Serverless by Stefan Judis
👀 Mo'Problems, Mo'Nads by Kyle Simpson
👀 Top 8 web things to know from Google I/O 2021
👀 What's Next, The Future of Node.js
Voice Chats:
🎤 Q&A
🎤 About Node.js Job Market, в гостях Алеся Кулакова
🎤 About testing, в гостях Хотемской Александр
🎤 About GraphQL, в гостях Павел Черторогов
Итоги мая 2021
телеграм канал @node_recipes
⚙️ количество подписчиков почти преодолело 1000
✅ эксперимент с Voice Chat оказался успешным. На еженедельных эфирах в среднем 40 слушателей. Формату быть.
✅ появилась айдентика и слоган
❓ не понятна актуальность постов в формате #raffle и #freebies
⏱ трудозатраты 10-12 часов в неделю
комьюнити GDG Cloud Kyiv
✅ официальная регистрация и освоение платформы
✅ первый Cloud Jam с 15 участниками
⚙️ формирование комьюнити в работе
⚙️ другие форматы и план на июнь
⏱ трудозатраты 3-4 часа в неделю
Доклады
✅ "Road to production" в ходе конференции Dev.Pro JS Conference
✅ Уже завтра "Deep Dive Into NestJS" на JavaScript fwdays’21
⚙️ Node.js TDD 15 июня
⏱ трудозатраты 10-20 часов на доклад
Проекты в работе, не готовые к официальному релизу
⚙️ Личный сайт
⚙️ Сайт node.recipes на английском с еженедельной email рассылкой
⚙️ Серия воркшопов по Node.js и Cloud Native разработке
⏱ не хватает времени и/или мотивации
Спасибо за поддержку и обратную связь.
телеграм канал @node_recipes
⚙️ количество подписчиков почти преодолело 1000
✅ эксперимент с Voice Chat оказался успешным. На еженедельных эфирах в среднем 40 слушателей. Формату быть.
✅ появилась айдентика и слоган
❓ не понятна актуальность постов в формате #raffle и #freebies
⏱ трудозатраты 10-12 часов в неделю
комьюнити GDG Cloud Kyiv
✅ официальная регистрация и освоение платформы
✅ первый Cloud Jam с 15 участниками
⚙️ формирование комьюнити в работе
⚙️ другие форматы и план на июнь
⏱ трудозатраты 3-4 часа в неделю
Доклады
✅ "Road to production" в ходе конференции Dev.Pro JS Conference
✅ Уже завтра "Deep Dive Into NestJS" на JavaScript fwdays’21
⚙️ Node.js TDD 15 июня
⏱ трудозатраты 10-20 часов на доклад
Проекты в работе, не готовые к официальному релизу
⚙️ Личный сайт
⚙️ Сайт node.recipes на английском с еженедельной email рассылкой
⚙️ Серия воркшопов по Node.js и Cloud Native разработке
⏱ не хватает времени и/или мотивации
Спасибо за поддержку и обратную связь.
Какие директивы есть в TypeScript и зачем их использовать?
#typenoscript
Директива это комментарий, который говорит TypeScript компилятору изменить свое поведение. Существуют Triple-Slash Directives, которые выходят за рамки этого рецепта. Их использование оправдано при создание библиотек, но не приложений.
Сегодня же речь об директивах начинающихся
➡️
➡️
➡️
➡️
Каноническим примером использования @ts-expect-error является обращение к приватному свойству в unit тесте.
Тут можно прочитать рекомендацию, что в каком случае использовать @ts-expect-error или @ts-ignore. Выработанную договоренность лучше закрепить на уровне линтинга с помощью @typenoscript-eslint/ban-ts-comment.
#typenoscript
Директива это комментарий, который говорит TypeScript компилятору изменить свое поведение. Существуют Triple-Slash Directives, которые выходят за рамки этого рецепта. Их использование оправдано при создание библиотек, но не приложений.
Сегодня же речь об директивах начинающихся
@ts-. На текущий момента, в версии TypeScript 4.2, их существует 4:➡️
// @ts-check – применяется только в начале javanoscript файла. Используется в ходе перехода с JS на TS. Для typenoscript файлов не применим.➡️
// @ts-nocheck – применяется только в начале файла. Все ошибки в файле будут проигнорированы. Используется и в JS, и в TS. Рекомендован в случае перехода на TS.➡️
// @ts-ignore – возможная ошибка на следующей строке будет проигнорирована.➡️
// @ts-expect-error – ошибка на следующей строке будет проигнорирована. Если ошибки нет, то TypeScript компилятор выкинет ошибку Unused '@ts-expect-error' directive. Использование предпочтительней, чем @ts-ignore. Каноническим примером использования @ts-expect-error является обращение к приватному свойству в unit тесте.
Тут можно прочитать рекомендацию, что в каком случае использовать @ts-expect-error или @ts-ignore. Выработанную договоренность лучше закрепить на уровне линтинга с помощью @typenoscript-eslint/ban-ts-comment.
Ответы на вопросы о закончившемся докладе:
❓ Видео в паблик будет в конце августа. Для владельцев Full ticket уже доступно.
❓ Хочу спросить в личку. У нас на проекте... Тут два варианта 1) Вытащить специфику проекта, чтобы можно было задавать публично. Например, в четверг на Voice Chat разберем. 2) Делать индивидуальную консультацию. На это на июль нет времени.
❓ А почему в докладе не было ...? Потому, что это не часть фреймворка, которой нет в документации.
❓ Будет ли повтор доклада? Да. Ближайшие 1-го июля в дружественном комьюнити @mathrandomcommunity
❓ Слайды тут
❓ Видео в паблик будет в конце августа. Для владельцев Full ticket уже доступно.
❓ Хочу спросить в личку. У нас на проекте... Тут два варианта 1) Вытащить специфику проекта, чтобы можно было задавать публично. Например, в четверг на Voice Chat разберем. 2) Делать индивидуальную консультацию. На это на июль нет времени.
❓ А почему в докладе не было ...? Потому, что это не часть фреймворка, которой нет в документации.
❓ Будет ли повтор доклада? Да. Ближайшие 1-го июля в дружественном комьюнити @mathrandomcommunity
❓ Слайды тут