OpenJS World уже сегодня!
#conference
Сегодня начинается конференция OpenJS World 2021. Подробное интро конференции тут.
Если вы еще не зарегистрированы, то рекомендую это сделать. Это бесплатно.
Для тех кто подумывает об #nodejs сертификации.
1) регистрация дает 50% скидку
2) David Mark Clements делает доклад как раз о ней.
При изучение программы обратите внимание, что справа есть фильтры. Самый полезный из них
#conference
Сегодня начинается конференция OpenJS World 2021. Подробное интро конференции тут.
Если вы еще не зарегистрированы, то рекомендую это сделать. Это бесплатно.
Для тех кто подумывает об #nodejs сертификации.
1) регистрация дает 50% скидку
2) David Mark Clements делает доклад как раз о ней.
При изучение программы обратите внимание, что справа есть фильтры. Самый полезный из них
Slides Included. Я вижу такое впервые, когда доклады идут сразу со слайдами. Боюсь за себя и других докладчиков, если это станет трендом.Обзор Node.js v16: Timers Promises API
#nodejs_api
Шестнадцатая версия #nodejs меняет работу с таймерами. Раньше мы не могли отменять промифисицированные таймеры. Теперь это возможно благодаря AbortController-ы. Промифисицированный таймер можно сразу получить из
из
#nodejs_api
Шестнадцатая версия #nodejs меняет работу с таймерами. Раньше мы не могли отменять промифисицированные таймеры. Теперь это возможно благодаря AbortController-ы. Промифисицированный таймер можно сразу получить из
timers/promises, аналогично fs/promises . Функция setIntervalиз
timers/promises, будет возвращать не Promise, а asyncIterator. Его можно итерировать через for-await-for. Примеры в документации.Audio
#voice_chat
Гость: Николай Крещенко, Senior Software Engineer в финтех сфере. Сейчас занят в разработке высокконагруженного бекенда необанка в Дубаях.
Вопросы
❓ Чем Cloud Native подходы в разработке отличаются от традиционных
❓ из чата по теме Cloud Native
Ссылки:
🔗 книга Cloud Native
🔗 Aviatrix Certified Engineer Multi-Cloud Networking & Security Courses
🔗 7 missing factors from 12 factor application
PS Изначально формат должен был быть Q&A, но в последний момент я пригласил Николая и изменил фокус на Cloud Native. Прошу прощения у кого были другие ожидания
Гость: Николай Крещенко, Senior Software Engineer в финтех сфере. Сейчас занят в разработке высокконагруженного бекенда необанка в Дубаях.
Вопросы
❓ Чем Cloud Native подходы в разработке отличаются от традиционных
❓ из чата по теме Cloud Native
Ссылки:
🔗 книга Cloud Native
🔗 Aviatrix Certified Engineer Multi-Cloud Networking & Security Courses
🔗 7 missing factors from 12 factor application
PS Изначально формат должен был быть Q&A, но в последний момент я пригласил Николая и изменил фокус на Cloud Native. Прошу прощения у кого были другие ожидания
Что должен знать Junior Node.js Developer?
Вчера во время Voice Chat Андрей задал вопрос: "Какие необходимые навыки/знания ты бы выделил для junior nodejs разработчика?". Вопрос можно брать для отдельного часового обсуждения и все равно не будет раскрыт полностью.
Обратите внимание, что в русском языке Junior переводиться младший специалист. Это означает способность самостоятельно решать задачу. Уровень Middle – тоже самое плюс немного проектировать фичи, Senior – проектировать фичи, Lead – строить процессы.
Вот мой список для Junior:
➡️Знание JavaScript/TypeScript, чтобы по примеру из другого файла сделать схожую фичу и покрыть ее тестами
➡️Знание работы с GIT, достаточные для открытия Merge Request
➡️Знание Docker и CLI, достаточные чтобы по хорошей документации проекта развернуть локальное окружение.
➡️Прочитана и понята документация по Node.js и фреймворку, что бы бы знать как и что в ней искать.
Завершу двумя полезными ссылками:
🔗Building Modern Node.js Applications on AWS хороший обзорный курс, для тех кто не работал с Cloud Native
🔗Матрица компетентности от Ильи Климова
Вчера во время Voice Chat Андрей задал вопрос: "Какие необходимые навыки/знания ты бы выделил для junior nodejs разработчика?". Вопрос можно брать для отдельного часового обсуждения и все равно не будет раскрыт полностью.
Обратите внимание, что в русском языке Junior переводиться младший специалист. Это означает способность самостоятельно решать задачу. Уровень Middle – тоже самое плюс немного проектировать фичи, Senior – проектировать фичи, Lead – строить процессы.
Вот мой список для Junior:
➡️Знание JavaScript/TypeScript, чтобы по примеру из другого файла сделать схожую фичу и покрыть ее тестами
➡️Знание работы с GIT, достаточные для открытия Merge Request
➡️Знание Docker и CLI, достаточные чтобы по хорошей документации проекта развернуть локальное окружение.
➡️Прочитана и понята документация по Node.js и фреймворку, что бы бы знать как и что в ней искать.
Завершу двумя полезными ссылками:
🔗Building Modern Node.js Applications on AWS хороший обзорный курс, для тех кто не работал с Cloud Native
🔗Матрица компетентности от Ильи Климова
Consuming Nodejs Observability Features in Kubernetes Environments
#worth_seeing
Сегодняшнее видео приятно рекомендовать по многим причинам.
Во-первых, сама тема – мониторинг #nodejs метрик да еще в Kubernetes. На многих проектах нет мониторинга. Разработчики не знают как его сделать, а DevOps инженеры не понимают особенностей Node.js.
Во-вторых, докладчики из Red Hat, компании которая много делает для open source в общем, и для Node.js в частности.
Во-третьих, подача самого доклада. Ребята подкупают своей простотой и открытостью. Вот вы много видели докладов, где докладчик джун (Alex Alykiotis)? А где докладчик (Luke Holmquist) шутит со своего имени Лукас и показывая йоду из звездных войн? Такое интро настраивает на простоту. Действительно сложная тема раскрывается легко и интересно.
#worth_seeing
Сегодняшнее видео приятно рекомендовать по многим причинам.
Во-первых, сама тема – мониторинг #nodejs метрик да еще в Kubernetes. На многих проектах нет мониторинга. Разработчики не знают как его сделать, а DevOps инженеры не понимают особенностей Node.js.
Во-вторых, докладчики из Red Hat, компании которая много делает для open source в общем, и для Node.js в частности.
Во-третьих, подача самого доклада. Ребята подкупают своей простотой и открытостью. Вот вы много видели докладов, где докладчик джун (Alex Alykiotis)? А где докладчик (Luke Holmquist) шутит со своего имени Лукас и показывая йоду из звездных войн? Такое интро настраивает на простоту. Действительно сложная тема раскрывается легко и интересно.
YouTube
Consuming Nodejs Observability Features in Kubernetes Environments - Alex Alykiotis & Luke Holmquist
Presented by Alex Alykiotis and Luke HolmquistOnce you get your application running in production, the next question is how do you keep it running and runnin...
Node.js middleware - никогда больше!
#worth_seeing
Вряд ли среди русскоязычных веб-разработчиков есть те, кто не знают Тимура Шемсединова. Он один из топ докладчиков по #nodejs. Не все идеи из его докладов я разделяю, но точно могу рекомендовать их к ознакомлению. Докладов у Тимура много. Конкретно этот знаменателен тем, что в конце идет обсуждение Ильей Климовым.
#worth_seeing
Вряд ли среди русскоязычных веб-разработчиков есть те, кто не знают Тимура Шемсединова. Он один из топ докладчиков по #nodejs. Не все идеи из его докладов я разделяю, но точно могу рекомендовать их к ознакомлению. Докладов у Тимура много. Конкретно этот знаменателен тем, что в конце идет обсуждение Ильей Климовым.
YouTube
Node.js Middleware – никогда больше! [ru] / Тимур Шемсединов
Видео с онлайн-конференции JavaScript fwdays'20 autumn, которая прошла 22 сентября 2020 года.
Описание доклада:
Почему приложение работает нестабильно, происходит утечка памяти и процесс часто вылетает? Почему вам сложно найти ошибку и нужно долго делать…
Описание доклада:
Почему приложение работает нестабильно, происходит утечка памяти и процесс часто вылетает? Почему вам сложно найти ошибку и нужно долго делать…
Prisma Day
#conference
Я люблю Vendor-конференции. На них можно послушать доклады и для новичков, и для тех кто глубоко освоил технологию. Есть возможность познакомиться с командой разработки и задать им вопросы.
Сегодня речь именно о такой конференции: Prisma Day пройдет 29-30 июня. Если вы не знакомы с этой технологией, то на конференции самое время составить свое мнение о ней.
#conference
Я люблю Vendor-конференции. На них можно послушать доклады и для новичков, и для тех кто глубоко освоил технологию. Есть возможность познакомиться с командой разработки и задать им вопросы.
Сегодня речь именно о такой конференции: Prisma Day пройдет 29-30 июня. Если вы не знакомы с этой технологией, то на конференции самое время составить свое мнение о ней.
На что влияет environment variable
#cli
Переменная окружения
Я предпочитаю его переопределять на Visual Code.
В зависимости от того, какой shell вы используете это строчку необходимо внести в
Примеры, когда будет вызван редактор:
➡️
➡️
➡️ при клике по строчке ошибки в браузере вашего React приложения.
Есть быть более точным, то многое программное обеспечение использует EDITOR, если не задан SOMETHING_EDITOR. Например, можно использовать
EDITOR?#cli
Переменная окружения
EDITOR определяет, какой текстовый редактор использовать при многострочном пользовательском вводе или редактирование файла. По умолчанию в Unix системах это vim, в Windows – notepad.exe.Я предпочитаю его переопределять на Visual Code.
export EDITOR='code'В зависимости от того, какой shell вы используете это строчку необходимо внести в
~/.profile, ~/.bashrc, ~.zshrc, то есть в конфигурационный файл вашего shell.Примеры, когда будет вызван редактор:
➡️
npm config edit➡️
git commit➡️ при клике по строчке ошибки в браузере вашего React приложения.
Есть быть более точным, то многое программное обеспечение использует EDITOR, если не задан SOMETHING_EDITOR. Например, можно использовать
REACT_EDITOR и GIT_EDITOR, но не NPM_EDITOR. Читайте документацию или исходный код конкретного ПО.Как работает ORM?
#architecture #orm
Существует извечный спор ORM или SQL-запросы в коде. Я предпочитаю не спорить, а использовать и то, и другое.
Начнем с определений. ORM (Object-Relational Mapping) – это слой между базой данных и приложением, который занимается созданием, обновлением, чтением и удалением записей в базе данных. ORM упрощает работу с базой данных генерируя запросы из кода. Для этого необходимо описать модели, т.е. структуры таблиц. #nodejs разработчики делают это или через схему, или через TypeScript декораторы. Примеры:
Модели используются для генерации запросов и правильной cериализации/деcериализации данных, т.е. мэпинга записей из БД в JS объекты.
Существует практика использования getter/setter в моделях. Например, на основание birthday можно сделать getter age. Если по этому полю необходимо будет строить запросы, то getter/setter не позволит это делать. В этом случае правильней будет сделать вычисляемое поле на уровне базы данных. В Postgres для этого используется Generated Columns.
#architecture #orm
Существует извечный спор ORM или SQL-запросы в коде. Я предпочитаю не спорить, а использовать и то, и другое.
Начнем с определений. ORM (Object-Relational Mapping) – это слой между базой данных и приложением, который занимается созданием, обновлением, чтением и удалением записей в базе данных. ORM упрощает работу с базой данных генерируя запросы из кода. Для этого необходимо описать модели, т.е. структуры таблиц. #nodejs разработчики делают это или через схему, или через TypeScript декораторы. Примеры:
// schema approachimport { Sequelize, DataTypes } from 'sequelize';class User extends Model {}User.init({ username: DataTypes.STRING, birthday: DataTypes.DATE});// decorator approachimport { Entity, Column } from 'typeorm';@Entity()class User { @Column() username: string; @Column('date') birthday: string;}Модели используются для генерации запросов и правильной cериализации/деcериализации данных, т.е. мэпинга записей из БД в JS объекты.
Существует практика использования getter/setter в моделях. Например, на основание birthday можно сделать getter age. Если по этому полю необходимо будет строить запросы, то getter/setter не позволит это делать. В этом случае правильней будет сделать вычисляемое поле на уровне базы данных. В Postgres для этого используется Generated Columns.
#announcement #voice_chat
Что: Voice Chat об Node.js подходах и комьюнити
С кем: Тимур Шемсединов
Когда: завтра, 10 июня, в 21-00
Где: https://news.1rj.ru/str/node_recipes?voicechat
Что: Voice Chat об Node.js подходах и комьюнити
С кем: Тимур Шемсединов
Когда: завтра, 10 июня, в 21-00
Где: https://news.1rj.ru/str/node_recipes?voicechat
Frontend Stars Meetup
#announcement
Ребята из AllStars-IT завтра проводят offline meetup.
Не знаю как лучше написать О-Ф-Ф-Л-А-Й-Н! или Offline is the new luxury.
Программа:
➡️ Michael Hladky (Google Developer Expert, Microsoft MVP) с докладом Angular Performance Tuning with Zone-Flags. Доклад уже есть в интернете. Для #nodejs разработчиков будет полезна часть связанная с анализом flame-graph. Доклад будет на английском, а докладчик онлайн.
➡️ Александр Головатый (Senior Full-Stack-разработчик с 15-ти летним опытом) с докладом Chrome Extension With React. Александр делал первый доклад по данной теме еще 3 года назад. Ему действительно есть чем поделиться. Доклад будет на английском, а докладчик оффлайн.
➡️ Q&A и after-party.
Формат: оффлайн и онлайн
Участие: бесплатно
Регистрация: http://bit.ly/FrontendMeetup
Дисклеймер: мероприятие проводиться в рамках HR-брендинга компании AllStars-IT
#announcement
Ребята из AllStars-IT завтра проводят offline meetup.
Не знаю как лучше написать О-Ф-Ф-Л-А-Й-Н! или Offline is the new luxury.
Программа:
➡️ Michael Hladky (Google Developer Expert, Microsoft MVP) с докладом Angular Performance Tuning with Zone-Flags. Доклад уже есть в интернете. Для #nodejs разработчиков будет полезна часть связанная с анализом flame-graph. Доклад будет на английском, а докладчик онлайн.
➡️ Александр Головатый (Senior Full-Stack-разработчик с 15-ти летним опытом) с докладом Chrome Extension With React. Александр делал первый доклад по данной теме еще 3 года назад. Ему действительно есть чем поделиться. Доклад будет на английском, а докладчик оффлайн.
➡️ Q&A и after-party.
Формат: оффлайн и онлайн
Участие: бесплатно
Регистрация: http://bit.ly/FrontendMeetup
Дисклеймер: мероприятие проводиться в рамках HR-брендинга компании AllStars-IT
👍1
Что должен уметь написать Senior Node.js разработчик?
#architecture
У меня много идей для докладов. Одна из них "Не только Web API". Большинство #nodejs разработчиков работают в web проектах и не умеют использовать Node.js для чего-то другого.
Для Web API много задач. Выбрать нужный протокол REST, RPC, SSE, GraphQL. Обеспечить нужный latency. Дать документацию. Исключить breaking change, что особенно важно в мобайл проектах. Но стоит добавить что-то не стандартное и разработчик теряется.
Вот мой личный топ-10 фичей или приложений, опыт создания которых помогает прокачать навыки:
➡️ Market-place. Пример: Uber, Airbnb
➡️ Поддержка реал-тайма. Пример: мессенджер, биржевые графики
➡️ Чат-боты. Пример: бот в телеграме, FB
➡️ Поисковая система. Пример: умный поиск по сайту, Google
➡️ Видео стриминг. Пример: Zoom
➡️ Картографический сервис. Пример: Google map
➡️ Collaborative real-time editor. Пример: Google Docs
➡️ CLI. Пример: npm, yarn, @nestjs/cli
➡️ REPL. Пример: Mongo shell
➡️ Game Server как пошаговый, так и реал-тайм. Пример: Монополия
#architecture
У меня много идей для докладов. Одна из них "Не только Web API". Большинство #nodejs разработчиков работают в web проектах и не умеют использовать Node.js для чего-то другого.
Для Web API много задач. Выбрать нужный протокол REST, RPC, SSE, GraphQL. Обеспечить нужный latency. Дать документацию. Исключить breaking change, что особенно важно в мобайл проектах. Но стоит добавить что-то не стандартное и разработчик теряется.
Вот мой личный топ-10 фичей или приложений, опыт создания которых помогает прокачать навыки:
➡️ Market-place. Пример: Uber, Airbnb
➡️ Поддержка реал-тайма. Пример: мессенджер, биржевые графики
➡️ Чат-боты. Пример: бот в телеграме, FB
➡️ Поисковая система. Пример: умный поиск по сайту, Google
➡️ Видео стриминг. Пример: Zoom
➡️ Картографический сервис. Пример: Google map
➡️ Collaborative real-time editor. Пример: Google Docs
➡️ CLI. Пример: npm, yarn, @nestjs/cli
➡️ REPL. Пример: Mongo shell
➡️ Game Server как пошаговый, так и реал-тайм. Пример: Монополия
Audio
#voice_chat
Гость: Тимур Шемсединов, CTO at Salucyber, главный архитектор технологического стека Metarhia, автор более 200 видео-лекция по веб-разработке.
Вопросы:
❓ Что такое Metarhia? Какую проблему он решает?
❓ Какие проблемы у тайпскрипта?
Дисклеймер – в комментария говорят, что ничего нового не услышали.
Гость: Тимур Шемсединов, CTO at Salucyber, главный архитектор технологического стека Metarhia, автор более 200 видео-лекция по веб-разработке.
Вопросы:
❓ Что такое Metarhia? Какую проблему он решает?
❓ Какие проблемы у тайпскрипта?
Дисклеймер – в комментария говорят, что ничего нового не услышали.
Что такое Custom URL Protocol Scheme?
#architecture
В заметке об конфигурации #nodejs приложений я рекомендую использовать connection string. Пример:
postgresql тут определяет схему протокола в URI. Общепринятыми схемами являются:
- http
- https
- ws
- mailto
- и так далее. Список в wiki
Схема протокола позволяет выбрать правильное приложение для открытия ресурса. Например ссылка чтобы открыть заметку об конфигурации сразу в телеграмме имеет вид: tg://resolve?domain=node_recipes&post=47
Зачем это знать Node.js разработчику? В BFF (backend for frontend) ваше Web API endpoints должны соответствовать ссылкам для mobile/desktop приложений.
#architecture
В заметке об конфигурации #nodejs приложений я рекомендую использовать connection string. Пример:
postgresql://postgres:password@localhost:5432/databasepostgresql тут определяет схему протокола в URI. Общепринятыми схемами являются:
- http
- https
- ws
- mailto
- и так далее. Список в wiki
Схема протокола позволяет выбрать правильное приложение для открытия ресурса. Например ссылка чтобы открыть заметку об конфигурации сразу в телеграмме имеет вид: tg://resolve?domain=node_recipes&post=47
Зачем это знать Node.js разработчику? В BFF (backend for frontend) ваше Web API endpoints должны соответствовать ссылкам для mobile/desktop приложений.
Observing Node.js: Using Metrics to Improve your Application Performance
#worth_seeing
Видео с OpenJS World 2021. Докладчик Guilherme Hermeto работает в Netflix. Первая часть видео это разбор метрик описывающих #nodejs приложение. Вторая же – демонстрация поведения метрик на графиках в зависимости от кода. Рекомендую не только посмотреть, но и попробовать запустить пример кода.
📕 Slides ⚙️ Code
#worth_seeing
Видео с OpenJS World 2021. Докладчик Guilherme Hermeto работает в Netflix. Первая часть видео это разбор метрик описывающих #nodejs приложение. Вторая же – демонстрация поведения метрик на графиках в зависимости от кода. Рекомендую не только посмотреть, но и попробовать запустить пример кода.
📕 Slides ⚙️ Code
YouTube
Observing Node.js: Using Metrics to Improve your Application Performance - Guilherme Hermeto
We all want to build apps that scale well, and at the same time, we need to keep the costs down. When you are scaling apps to hundreds of containers, you want to make sure you are making the best use of each instance and continually improving your app performance.…
Demystifying Database Performance Issues with sqlcommenter
#worth_seeing
Еще одно видео с OpenJS World 2021. Его можно отнести к категории промо докладов. В нем продвигается библиотека sqlcommenter, заточенная под Google Cloud Platform. В видео есть подробная демонстрация создания DB инстанса и запуск #nodejs под GCP. Эта часть будет полезна разработчикам не работавшим с GCP ранее.
Идея библиотеки использовать в DB-запросах комментарии, чтобы собирать телеметрию. Данная библиотека реализуется идеи заложенные в OpenTelemetry спецификации.
Ссылки:
- sqlcommenter
- OpenTelemetry
#worth_seeing
Еще одно видео с OpenJS World 2021. Его можно отнести к категории промо докладов. В нем продвигается библиотека sqlcommenter, заточенная под Google Cloud Platform. В видео есть подробная демонстрация создания DB инстанса и запуск #nodejs под GCP. Эта часть будет полезна разработчикам не работавшим с GCP ранее.
Идея библиотеки использовать в DB-запросах комментарии, чтобы собирать телеметрию. Данная библиотека реализуется идеи заложенные в OpenTelemetry спецификации.
Ссылки:
- sqlcommenter
- OpenTelemetry
YouTube
Demystifying Database Performance Issues with sqlcommenter - Jan Kleinert & Bala Chandrasekaran
Have you ever tried to troubleshoot a database performance issue in an application that was built using an ORM? ORMs can simplify development of applications that communicate with databases, but since the ORMs are generating the SQL statements, it can be…
MongoDB.live 2021, July 13–14, 2021
#conference
MongoDB самая популярная документная база данных. На подходе 5-ая версия. Узнать об новинках в релизе, посмотреть доклада можно будет уже 13-14 июля в ходе конференции MongoDB.live 2021.
Как обычно для Vendor конференций участие бесплатно, а доклады будут доступны к просмотру сразу после конференции. Чтобы стимулировать участников смотреть доклады онлайн и ходит по виртуальным стендап организаторы вводят систему очков. В последствие эти очки используются для розыгрыша подарков от партнеров.
Напомню, что существует MongoDB University
#conference
MongoDB самая популярная документная база данных. На подходе 5-ая версия. Узнать об новинках в релизе, посмотреть доклада можно будет уже 13-14 июля в ходе конференции MongoDB.live 2021.
Как обычно для Vendor конференций участие бесплатно, а доклады будут доступны к просмотру сразу после конференции. Чтобы стимулировать участников смотреть доклады онлайн и ходит по виртуальным стендап организаторы вводят систему очков. В последствие эти очки используются для розыгрыша подарков от партнеров.
Напомню, что существует MongoDB University