В комментариях к одному из рецептов меня спросили, что я думаю по поводу практик описанных в nodebestpractices. Я думаю, что знать об этом отличном репозитории нужно каждому #nodejs разработчику. Собственно эта заметка призывает вас прочитать его содержимое.
GitHub
GitHub - goldbergyoni/nodebestpractices: :white_check_mark: The Node.js best practices list (July 2024)
:white_check_mark: The Node.js best practices list (July 2024) - goldbergyoni/nodebestpractices
👍1
Подборка книг для прокачки, когда ты уже Senior
#list
Начну с хорошей цитаты:
Читать и перечитывать книги я предпочитаю на O'Reilly. Рецепт о том как это делать тут.
Собственно вот список книг, которые я рекомендую:
📕Cloud Native ставит парадигму Cloud Native мышления и дает конкретные рецепты реализации.
📕Refactoring: Improving the Design of Existing Code класика от Мартина Фаулера переписанная с JavaScript примерами
📕Web Scalability for Startup Engineers настольная книга, как проектировать и создавать масштабируемые веб-проекты
📕Programming TypeScript на текущий момент лучшая из книг по TypeScript
Как вы видите в списке отсутствуют книги по #nodejs. Дело в том, что пока я не прочитал ни одной книги, сфокусированной именно на Node.js, которую мне хотелось бы перечитать.
#list
Начну с хорошей цитаты:
A good book gets better at the second reading. A great book at the third. Any book not worth rereading isn’t worth reading. – Nassim TalebЧитать и перечитывать книги я предпочитаю на O'Reilly. Рецепт о том как это делать тут.
Собственно вот список книг, которые я рекомендую:
📕Cloud Native ставит парадигму Cloud Native мышления и дает конкретные рецепты реализации.
📕Refactoring: Improving the Design of Existing Code класика от Мартина Фаулера переписанная с JavaScript примерами
📕Web Scalability for Startup Engineers настольная книга, как проектировать и создавать масштабируемые веб-проекты
📕Programming TypeScript на текущий момент лучшая из книг по TypeScript
Как вы видите в списке отсутствуют книги по #nodejs. Дело в том, что пока я не прочитал ни одной книги, сфокусированной именно на Node.js, которую мне хотелось бы перечитать.
Подборка задач для прокачки, когда ты уже Middle
#list
Сегодня в обзоре список типичных задач #nodejs разработчика не связанных с написанием кода. Все задачи носят практический характер, поэтому я формулирую их в виде
✅ Спроектировать REST API с помощью OpenAPI
✅ Настроить CI/CD с помощью GitHub Actions
✅ Описать архитектуру в draw.io
✅ Описать фичу с помощью plantuml
✅ Добавить систему оповещений с помощью бота (telegram, slack, discord)
✅ Добавить внешнюю систему мониторинга uptime с помощью freshping.io (это бесплатный аналог pingdom). Если работает с GCP, то используйте alerts
✅ Добавить продуктовую аналитику с помощью mixpanel
✅ Сделайте отчет с помощью datastudio или любого другого business intelligence tool
#list
Сегодня в обзоре список типичных задач #nodejs разработчика не связанных с написанием кода. Все задачи носят практический характер, поэтому я формулирую их в виде
ACTION с помощью TOOL. Инструмент можно менять в зависимости от проекта и его тех.стека. Кстати о проекте, я предполагаю что у вас есть проект под эти задачи. Это может быть или основной, или ваш pet проект.✅ Спроектировать REST API с помощью OpenAPI
✅ Настроить CI/CD с помощью GitHub Actions
✅ Описать архитектуру в draw.io
✅ Описать фичу с помощью plantuml
✅ Добавить систему оповещений с помощью бота (telegram, slack, discord)
✅ Добавить внешнюю систему мониторинга uptime с помощью freshping.io (это бесплатный аналог pingdom). Если работает с GCP, то используйте alerts
✅ Добавить продуктовую аналитику с помощью mixpanel
✅ Сделайте отчет с помощью datastudio или любого другого business intelligence tool
Working with WebSockets on AWS
#worth_seeing #aws
Для постоянных читателей рубрики не будет новостью, что AWS предлагает serverless websockets. Я делился соответствующим видео с OpenJS World 2020.
Сегодня у нас более подробное видео от Ryan Lewis. Доклад сделан в рамках youtube-канала, а не конференции. Формат – live coding . В нем докладчик не только рассказывает что, но и показывает как. В рамках конференций это самый сложный формат. В записи его делать проще, что однако не умоляет ценность рекомендуемого видео.
Расскажу о докладчике. Райан делает материалы по AWS, serverless и JavaScript. Для начинающего #nodejs разработчика будет полезна его бесплатная книга "The Cloud Developer Workbook", где собранны 100 базовых упражнений для изучения AWS.
#worth_seeing #aws
Для постоянных читателей рубрики не будет новостью, что AWS предлагает serverless websockets. Я делился соответствующим видео с OpenJS World 2020.
Сегодня у нас более подробное видео от Ryan Lewis. Доклад сделан в рамках youtube-канала, а не конференции. Формат – live coding . В нем докладчик не только рассказывает что, но и показывает как. В рамках конференций это самый сложный формат. В записи его делать проще, что однако не умоляет ценность рекомендуемого видео.
Расскажу о докладчике. Райан делает материалы по AWS, serverless и JavaScript. Для начинающего #nodejs разработчика будет полезна его бесплатная книга "The Cloud Developer Workbook", где собранны 100 базовых упражнений для изучения AWS.
YouTube
Working with WebSockets on AWS
WebSockets is the best way to interact in real-time between your front-end and back-end. AWS provides a new WebSocket API through API Gateway, which is powerful and easy to set up. In this tutorial, we'll create a new WebSocket API, a Lambda function, and…
Подборка node.recipes за июль 2021
#monthly_list
Рецепты для #nodejs разработчиков:
➡️ Top mistakes that Node.js developers make
➡️ Как использовать ARG и ENV внутри Dockerfile?
➡️ boardgame.io движок для пошаговых игр
➡️ Что такое JSONPath?
➡️ Any problem must be solved at the right level
➡️ Как и зачем обновить aws-sdk с v2 на v3?
➡️ Что такое AssemblyScript?
➡️ Какие вещи должны быть в техническом стэке для поддержки проекта?
➡️ Как я провожу собеседования?
➡️ Почему вам нужны знания Promise-ов в async/await коде?
➡️ Как писать меньше TypeScript интерфейсов?
➡️ Какие вопросы необходимо решить при внедрение WebSockets?
➡️ Как документировать асинхронное API?
➡️ Как следить за устареванием кода?
➡️ Стоит знать Node Best Practice
➡️ Подборка книг для прокачки, когда ты уже Senior
➡️ Подборка задач для прокачки, когда ты уже Middle
Доклады, которые стоит посмотреть:
👀 Play it Right with CodeceptJS
👀 Stream-oriented Architecture with Nest
👀 Refactoring: Second Edition
👀 Hello Quantum Developers World - Yet Another Frontier for JavaScript
👀 No Way, JOSE
👀 Microservices in the Cloud with Kubernetes and Istio
👀 WebTransport
Voice Chats:
🎤 About Career Development, в гостях Андрей Кучеренко
🎤 About Education, в гостях Сергей Немчинский
#monthly_list
Рецепты для #nodejs разработчиков:
➡️ Top mistakes that Node.js developers make
➡️ Как использовать ARG и ENV внутри Dockerfile?
➡️ boardgame.io движок для пошаговых игр
➡️ Что такое JSONPath?
➡️ Any problem must be solved at the right level
➡️ Как и зачем обновить aws-sdk с v2 на v3?
➡️ Что такое AssemblyScript?
➡️ Какие вещи должны быть в техническом стэке для поддержки проекта?
➡️ Как я провожу собеседования?
➡️ Почему вам нужны знания Promise-ов в async/await коде?
➡️ Как писать меньше TypeScript интерфейсов?
➡️ Какие вопросы необходимо решить при внедрение WebSockets?
➡️ Как документировать асинхронное API?
➡️ Как следить за устареванием кода?
➡️ Стоит знать Node Best Practice
➡️ Подборка книг для прокачки, когда ты уже Senior
➡️ Подборка задач для прокачки, когда ты уже Middle
Доклады, которые стоит посмотреть:
👀 Play it Right with CodeceptJS
👀 Stream-oriented Architecture with Nest
👀 Refactoring: Second Edition
👀 Hello Quantum Developers World - Yet Another Frontier for JavaScript
👀 No Way, JOSE
👀 Microservices in the Cloud with Kubernetes and Istio
👀 WebTransport
Voice Chats:
🎤 About Career Development, в гостях Андрей Кучеренко
🎤 About Education, в гостях Сергей Немчинский
Real-time communication with WebRTC: Google I/O 2013
#worth_seeing
Сегодня в рекомендациях видео об технологии WebRTC. Технология уже давно обкатана, но вопрос как бы вы создавали аналог google meet ставит в тупик большинство #nodejs разработчиков.
Для получения практических навыков по теме предлагаю пройти Real time communication with WebRTC
#worth_seeing
Сегодня в рекомендациях видео об технологии WebRTC. Технология уже давно обкатана, но вопрос как бы вы создавали аналог google meet ставит в тупик большинство #nodejs разработчиков.
Для получения практических навыков по теме предлагаю пройти Real time communication with WebRTC
YouTube
Real-time communication with WebRTC: Google I/O 2013
Justin Uberti, Sam Dutton
Presentation slides: http://io13webrtc.appspot.com
01:41 WebRTC across platforms
03:37 WebRTC APIs
04:32 MediaStream
09:44 RTCPeerConnection
12:28 RTCDataChannel
16:31 Signaling
18:43 STUN and TURN
22:18 Security
23:21 Architectures…
Presentation slides: http://io13webrtc.appspot.com
01:41 WebRTC across platforms
03:37 WebRTC APIs
04:32 MediaStream
09:44 RTCPeerConnection
12:28 RTCDataChannel
16:31 Signaling
18:43 STUN and TURN
22:18 Security
23:21 Architectures…
Что такое Breaking Change в Web API?
#architecture
Обратная совместимость (backward compatibility) одно из ключевых требований при выборе инструментов, библиотек, API и т.д. Нарушение обратной совместимости называет Breaking Change.
Примеры Breaking Change:
❌ Переименование полей. Добавьте новое, но оставьте старое.
❌ Изменение типа поля.
❌ Изменение http-кода ответа, например с 400 на 404. В REST приложениях клиент должен строит логику на основание этих кодов.
❌ Изменение значений по умолчанию. Например, раньше API отдавало все записи, а теперь только первые 50 элементов.
Команда разработки может игнорировать обратную совместимость, только если проект состоит из API и Single Page Application, которые доставляются одновременно. Если среди клиентов есть мобильное, десктоп приложение, то функциональность будет сломана пока пользователь не обновить приложение.
Хорошими практиками является версионирование API и пометка как deprecated для полей и endpoints. Если клиент использует версию старше, чем предоставляет сервер, то он может уведомить пользователя об необходимости обновления ПО.
#architecture
Обратная совместимость (backward compatibility) одно из ключевых требований при выборе инструментов, библиотек, API и т.д. Нарушение обратной совместимости называет Breaking Change.
Примеры Breaking Change:
❌ Переименование полей. Добавьте новое, но оставьте старое.
❌ Изменение типа поля.
❌ Изменение http-кода ответа, например с 400 на 404. В REST приложениях клиент должен строит логику на основание этих кодов.
❌ Изменение значений по умолчанию. Например, раньше API отдавало все записи, а теперь только первые 50 элементов.
Команда разработки может игнорировать обратную совместимость, только если проект состоит из API и Single Page Application, которые доставляются одновременно. Если среди клиентов есть мобильное, десктоп приложение, то функциональность будет сломана пока пользователь не обновить приложение.
Хорошими практиками является версионирование API и пометка как deprecated для полей и endpoints. Если клиент использует версию старше, чем предоставляет сервер, то он может уведомить пользователя об необходимости обновления ПО.
Почем нынче Node.js разработчики?
➡️ Зарплати українських розробників — літо 2021 Традиционная аналитика от Dou. #nodejs в явном виде нет. Строиться на основание текущих зарплат.
✅ Candidates' Salary Analytics Аналитика от рекрутинг агенства Виктории Придатко. Строиться на основание пожеланий кандидатов. Node.js Senior 5.5к.
🔥 10k новый потолок, где Max Ischenko делиться о трех наймах через Джини за июль 2021 с зарплатой в 10к. Один из наймов это Node.js разработчик. Есть к чему стремиться.
➡️ Зарплати українських розробників — літо 2021 Традиционная аналитика от Dou. #nodejs в явном виде нет. Строиться на основание текущих зарплат.
✅ Candidates' Salary Analytics Аналитика от рекрутинг агенства Виктории Придатко. Строиться на основание пожеланий кандидатов. Node.js Senior 5.5к.
🔥 10k новый потолок, где Max Ischenko делиться о трех наймах через Джини за июль 2021 с зарплатой в 10к. Один из наймов это Node.js разработчик. Есть к чему стремиться.
Обзор Node.js v16: Префикс для Core modules
#nodejs_api
Как известно #nodejs имеет встроенные модули (в английском Core или Builtin). Они имеют приоритет перед модулями из node_modules. В 16 версии для них добавили префикс
Отличное изменение! Оно позволит в коде явно разделять встроенные и обычные модули. Сейчас для этого я использую eslint правило import/order. С его помощью идет валидация порядка импортов. У нас это встроенные, установленные, из других файлов проекта с пустой строкой между блоками. Для правила есть автофикс.
В документации пока мало мест, где используется новый require стиль. Поэтому можно поучаствовать в ее улучшение и стать контрибутором в Node.js
#nodejs_api
Как известно #nodejs имеет встроенные модули (в английском Core или Builtin). Они имеют приоритет перед модулями из node_modules. В 16 версии для них добавили префикс
node: Пример, const http = require('node:http')
Для обратной совместимости, можно использовать и без префикса.Отличное изменение! Оно позволит в коде явно разделять встроенные и обычные модули. Сейчас для этого я использую eslint правило import/order. С его помощью идет валидация порядка импортов. У нас это встроенные, установленные, из других файлов проекта с пустой строкой между блоками. Для правила есть автофикс.
В документации пока мало мест, где используется новый require стиль. Поэтому можно поучаствовать в ее улучшение и стать контрибутором в Node.js
Что такое Code With Me от JetBrains?
В этом году в список причин, почему я предпочитаю WebStorm, а не VisualCode для написания #nodejs кода добавилась возможность парного программирования через Code With Me. Если вы его еще не попробовали, рекомендую это сделать.
Update: В комментариях рекомендуют посмотреть Live Sharing для VisualCode
В этом году в список причин, почему я предпочитаю WebStorm, а не VisualCode для написания #nodejs кода добавилась возможность парного программирования через Code With Me. Если вы его еще не попробовали, рекомендую это сделать.
Update: В комментариях рекомендуют посмотреть Live Sharing для VisualCode
YouTube
Introducing Code With Me - Collaborative Coding
Code With Me is JetBrains' collaborative development and pair programming service. Bundled with most 2021.1 IDEs, you can now share a project with others, and work on it together, in real time.
Playlist:
0:00 - Introduction
0:30 - Joining a session
0:48…
Playlist:
0:00 - Introduction
0:30 - Joining a session
0:48…
JavaScript Algorithms and Data Structures
#code_pattern
Чтобы писать код нужно: знать его синтаксис и инструментарий. Чтобы писать качественный код нужно: знать теория программирования, алгоритмы и структуры данных.
Для JavaScript разработчиков существует отличный репозитарий javascript-algorithms. В нем разобраны классические алгоритмы и структуры данных. Есть разделение по уровню Beginner/Advanced и переводы, в том числе на русский и украинский языки. Рекомендую к изучению!
#code_pattern
Чтобы писать код нужно: знать его синтаксис и инструментарий. Чтобы писать качественный код нужно: знать теория программирования, алгоритмы и структуры данных.
Для JavaScript разработчиков существует отличный репозитарий javascript-algorithms. В нем разобраны классические алгоритмы и структуры данных. Есть разделение по уровню Beginner/Advanced и переводы, в том числе на русский и украинский языки. Рекомендую к изучению!
GitHub
GitHub - trekhleb/javascript-algorithms: 📝 Algorithms and data structures implemented in JavaScript with explanations and links…
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings - trekhleb/javascript-algorithms
Yoni Goldberg on Integration Tests with JavaScript
#worth_seeing
Последние полтора года у нас не много конференций. Сами знаете почему. Поэтому я не нашел свежего видео, в котором Yoni Goldberg рассказывает об подходах в тестирование. Зато есть отличный подкаст от NearForm – OpenHive.js. Один из его выпусков я и предлагаю вам послушать.
Постоянный читатели уже знакомы с Yoni Goldberg. Он автор nodebestpractices. А еще у него есть nodejs-integration-tests-best-practices. Собственно этот вопрос он и обсуждает в подкасте.
#worth_seeing
Последние полтора года у нас не много конференций. Сами знаете почему. Поэтому я не нашел свежего видео, в котором Yoni Goldberg рассказывает об подходах в тестирование. Зато есть отличный подкаст от NearForm – OpenHive.js. Один из его выпусков я и предлагаю вам послушать.
Постоянный читатели уже знакомы с Yoni Goldberg. Он автор nodebestpractices. А еще у него есть nodejs-integration-tests-best-practices. Собственно этот вопрос он и обсуждает в подкасте.
Spotify for Creators
Yoni Goldberg on Integration Tests with JavaScript by OpenHive.JS
This episode of OpenHive.JS features Yoni Goldberg, an independent software architect who specialises in crafting advanced web applications using Node.js. A consultant, conference speaker and open source contributor, Yoni loves to blog and is the author of…
Обзор сервиса RunKit
#service
Вчера @node_recipes исполнилось 4 месяца. Телеграм-канал это отличный способ ведение мини-блога. Только делиться кодом в канале это боль. Вставлять код картинкой означает, что люди не смогут его скопировать. А формат рецептов – это короткие заметки читаемые находу, которые тут же можно применять. Вставлять код текстом, даже с
Для сайта лучшим вариантом является RunKit, который позволяет встраивать запускаемые сниппеты кода. Пример можно увидеть в документации lodash.
Вообще основная задача сервиса помогать майнтейнерам npm-пакетов. Пользователи могут без установки попробовать функционал прямо в браузере. Составить воспроизводимый баг репорт. Для этого используется npm.runkit.com. А еще с его помощью можно делать enpoint-ы (бесплатные лямды с маленьким лимитом).
В сервисе есть notebook, упрощенная версия Jupyter notebook. К сожалению, их нельзя запускать без авторизации. В качестве примера, я сделал функцию с AbortController. Получилось не на много удобней GitHub Gist. Так что я еще в поисках как же удобно делиться кодом в канале.
#service
Вчера @node_recipes исполнилось 4 месяца. Телеграм-канал это отличный способ ведение мини-блога. Только делиться кодом в канале это боль. Вставлять код картинкой означает, что люди не смогут его скопировать. А формат рецептов – это короткие заметки читаемые находу, которые тут же можно применять. Вставлять код текстом, даже с
таким форматом неудобно.Для сайта лучшим вариантом является RunKit, который позволяет встраивать запускаемые сниппеты кода. Пример можно увидеть в документации lodash.
Вообще основная задача сервиса помогать майнтейнерам npm-пакетов. Пользователи могут без установки попробовать функционал прямо в браузере. Составить воспроизводимый баг репорт. Для этого используется npm.runkit.com. А еще с его помощью можно делать enpoint-ы (бесплатные лямды с маленьким лимитом).
В сервисе есть notebook, упрощенная версия Jupyter notebook. К сожалению, их нельзя запускать без авторизации. В качестве примера, я сделал функцию с AbortController. Получилось не на много удобней GitHub Gist. Так что я еще в поисках как же удобно делиться кодом в канале.
Forwarded from GDG Cloud Kyiv (Nikita)
#freebies
CKA/CKAD/CKS 50% OFF with FREE participation at the KubeCon + CloudNativeCon North America 2021 (October 11-15)!
To redeem your complimentary All Access virtual pass, use the code KCNA21TR100. The offer is only available until September 27, 11:59 PM PDT at https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/register/
CKA/CKAD/CKS 50% OFF with FREE participation at the KubeCon + CloudNativeCon North America 2021 (October 11-15)!
To redeem your complimentary All Access virtual pass, use the code KCNA21TR100. The offer is only available until September 27, 11:59 PM PDT at https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/register/
Обзор Node.js v16: Новые JavaScript конструкции
#nodejs_api
Начну с цитаты: V8 - это высокопроизводительный движок JavaScript и WebAssembly с открытым исходным кодом от Google, написанный на C++.
Этот движок выполняет JavaScript код внутри Chrome и #nodejs. Обновление V8 это breaking change. Произойдет это в октябре во время обновления мажорной LTS версии Node.js с 14-ой на 16-ую. V8 обновиться с 8-й на 9-ю версию. А это означает, что у нас должны появятся такие фичи:
➡️
➡️
➡️ Error causes, добавляет в конструктор
➡️
➡️ Class static initialization blocks. 🔗tc39 🔗v8
➡️ Private brand checks a.k.a.
#nodejs_api
Начну с цитаты: V8 - это высокопроизводительный движок JavaScript и WebAssembly с открытым исходным кодом от Google, написанный на C++.
Этот движок выполняет JavaScript код внутри Chrome и #nodejs. Обновление V8 это breaking change. Произойдет это в октябре во время обновления мажорной LTS версии Node.js с 14-ой на 16-ую. V8 обновиться с 8-й на 9-ю версию. А это означает, что у нас должны появятся такие фичи:
➡️
String.prototype.replaceAll, которые заменяет все вхождения в отличие от обычного replace. Подробней: tc39➡️
Object.hasOwn alias для Object.prototype.hasOwnProperty. Подробней: tc39, v8➡️ Error causes, добавляет в конструктор
Error дополнительный параметр со свойством cause куда передается ошибка причина. Это позволяет создавать цепочки ошибок. Пример:const parentError = new Error('parent');
const error = new Error('parent', { cause: parentError });
console.log(error.cause === parentError);
Подробней: tc39, v8➡️
ArrayLike.at упростят доступ к элементам в конце, так как принимают отрицательные значения. Подробней: tc39, v8➡️ Class static initialization blocks. 🔗tc39 🔗v8
➡️ Private brand checks a.k.a.
#foo in obj. Подробней: tc39, v8Где изучать Kubernetes
#freebies #list
Kubernetes уже стал стандартом де-факто в разворачивание проектов. Его необходимо знать не только DevOps инженерам, но и разработчикам. Материалов по его изучению много. Вот моя личная подборка:
➡️ Официальная документация kubernetes. Для сдачи CKAD необходимо знать ее структуру и уметь быстро находить нужное. В работе вы тоже будет регулярно ей пользоваться. Знайте на какой версии k8s вы работаете и смотреть изменения.
➡️ Документация от вендора где развернут ваш k8s. Основное знание это вендор специфик annotation, которые расширяют функционал.
➡️ container.training сайт с материалами воркшопов по Docker и kubernetes. Есть видео и Self-paced tutorials.
➡️ kube.academy от VMWare. Есть курсы разного уровня.
#freebies #list
Kubernetes уже стал стандартом де-факто в разворачивание проектов. Его необходимо знать не только DevOps инженерам, но и разработчикам. Материалов по его изучению много. Вот моя личная подборка:
➡️ Официальная документация kubernetes. Для сдачи CKAD необходимо знать ее структуру и уметь быстро находить нужное. В работе вы тоже будет регулярно ей пользоваться. Знайте на какой версии k8s вы работаете и смотреть изменения.
➡️ Документация от вендора где развернут ваш k8s. Основное знание это вендор специфик annotation, которые расширяют функционал.
➡️ container.training сайт с материалами воркшопов по Docker и kubernetes. Есть видео и Self-paced tutorials.
➡️ kube.academy от VMWare. Есть курсы разного уровня.
Обзор Node.js v16: Упрощение доступа к util.types
#nodejs_api
Встроенный модуль util дает возможность проверять типы. Я чаще всего использую такие проверки из util.types:
➡️
#nodejs_api
Встроенный модуль util дает возможность проверять типы. Я чаще всего использую такие проверки из util.types:
➡️
isDate
➡️ isMap
➡️ isSet
➡️ isNativeError
➡️ isPromise
До 16-й версии обращение к данным методом было только через require('util').types. В 16-й появляется альтернатива require('util/types'). Для встроенных #nodejs модулей это синтаксический сахар. А вот для устанавливаемых использование конкретного файла – хорошая практика: typescript компилируется быстрее, уменьшение затраты памяти. По сути это ручной tree-shaking, т.е. удаление не используемого кода.Forwarded from 🇺🇦 Math.random(): javascript community
This media is not supported in your browser
VIEW IN TELEGRAM
🪄Магия на github! Просто нажмите "." находясь в любом репозитории на github!
🔗 https://twitter.com/github/status/1425505817827151872
#github #shortcut #news
🔗 https://twitter.com/github/status/1425505817827151872
#github #shortcut #news
Как и зачем использовать
#nodejs_api
С 16.4 версии Node.js AsyncLocalStorage перестал быть экспериментальным, а значит его можно смело использовать в продакшене. Данный класс позволяет сохранять контекст между шагами асинхронного флоу. Он работает и с callback, и с promise chain.
Для получения текущего значения используется
Возможное использование данного апи – улучшение логгирования. В стейте храниться traceId, который пишется в лог. Так вы легко можете различить логи от нескольких запросов, которые параллельно обрабатываются #nodejs.
Статья с примерами использования из комментариев.
Пример для Nest.js.
AsyncLocalStorage?#nodejs_api
С 16.4 версии Node.js AsyncLocalStorage перестал быть экспериментальным, а значит его можно смело использовать в продакшене. Данный класс позволяет сохранять контекст между шагами асинхронного флоу. Он работает и с callback, и с promise chain.
Для получения текущего значения используется
asyncLocalStorage.getStore()
Для установки значения есть два способа:asyncLocalStorage.run(store, callback[, ...args]) – устанавливает значение внутри callback. Для использования скорее всего потребуется внести изменения на верхнем уровне кода.asyncLocalStorage.enterWith(store) – устанавливает значение до окончания текущего синхронного контекста и всех порождающих асинхронных операций. Проще в использование, но возможность его вызвать несколько раз создает сложности в поддержки. Мутировать стейт это плохо. Поэтому документация рекомендует использовать run.Возможное использование данного апи – улучшение логгирования. В стейте храниться traceId, который пишется в лог. Так вы легко можете различить логи от нескольких запросов, которые параллельно обрабатываются #nodejs.
Статья с примерами использования из комментариев.
Пример для Nest.js.
👍1
Знай свой JIT: ближе к машине
#worth_seeing
Сегодня видео с FrontendConf'18. В докладе идет очень подробный разбор как работает V8. Какие этапы javascript проходит код, прежде чем будет исполнен. Вдумчивый слушатель узнает, почему использование TypeScript улучшает производительность JS приложение.
Докладчик Андрей Мелихов известен благодаря своему подкасту девШахта. За последний год подкаст превратился в ютубканал.
Ссылки:
🔗 Слайды
🔗 Расшифровка доклада в виде статьи на хабр
🔗 ДевШахта
#worth_seeing
Сегодня видео с FrontendConf'18. В докладе идет очень подробный разбор как работает V8. Какие этапы javascript проходит код, прежде чем будет исполнен. Вдумчивый слушатель узнает, почему использование TypeScript улучшает производительность JS приложение.
Докладчик Андрей Мелихов известен благодаря своему подкасту девШахта. За последний год подкаст превратился в ютубканал.
Ссылки:
🔗 Слайды
🔗 Расшифровка доклада в виде статьи на хабр
🔗 ДевШахта
YouTube
Знай свой JIT: ближе к машине / Андрей Мелихов (Яндекс.Деньги)
РИТ++2018, FrontendConf
Тезисы и презентация:
http://frontendconf.ru/moscow-rit/2018/abstracts/3386
До того, как написанный нами код будет исполнен, он проходит довольно долгий путь. Мы рассмотрим каждый шаг на этом пути на примере движка V8 и поймём…
Тезисы и презентация:
http://frontendconf.ru/moscow-rit/2018/abstracts/3386
До того, как написанный нами код будет исполнен, он проходит довольно долгий путь. Мы рассмотрим каждый шаг на этом пути на примере движка V8 и поймём…