Обновить
64K+

Node.JS *

Среда для запуска JavaScript-приложений

62,38
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Публикация NPM-пакетов

Время на прочтение6 мин
Охват и читатели15K

Недавно после очередного копирования файлов react-компонентов из проекта в проект я решил что хватит это терпеть и пора научиться публиковать npm-пакеты. Прошерстив интернет в поисках простого рецепта, который позволял бы с минимальными усилиями сделать пакет из react-приложения, я нашел несколько рабочих вариантов. Но, к сожалению, все они имели различные недочеты. Поэтому мне пришлось вооружиться напильником и составить эту памятку по результатам своих манипуляций.

Читать далее

Что такое менеджер пакетов, и в чем разница YARN, NPM, PNPM?

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели58K

Очень хочется пошутить про пакет с пакетами. Но нет. Статья про другое. Для начала давайте разберемся, почему я ее написал, и кому она может быть полезна:

Читать далее

«Скачал плагин и опингвинился». Полезные инструменты для работы с IDE

Время на прочтение4 мин
Охват и читатели15K

Эффективность разработки зависит не только от скиллов программиста, но и от рабочего окружения. Так, чтобы оптимизировать процесс, можно использовать специальные плагины или расширения IDE. В тексте собрали самые полезные, по мнению специалистов Selectel, инструменты. Сохраняйте подборку в закладки и делитесь своими вариантами в комментариях.
Читать дальше →

SQRT.app или о том как, сократить затраты в автоматизации тестирования

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели1.3K

Всем привет, меня зовут Виталий, я являюсь Test automation engineer и по совместительству один из создателей библиотеки который называется sqrt.app. В IT-сфере я около 6 лет и успел повидать много говна решений но сегодня я бы хотел рассказать про то - зачем любому инженеру будет полезно использовать данный тул.

узнать про sqrt.app

Создание простого SPA на VueJs с использованием CMS Strapi

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели20K

Данное руководство составлено на основе некоторого опыта, который был получен из книг и официальной документации. Вашему вниманию будет представлено 2 варианта написания простых в поддержке сайтов на Vue.js (с использованием backend систем и без). 

В первой части будет изложена инструкция по экспресс созданию сайта - галереи с использованием статичных JSON файлов для хранения данных сайта. 

Во второй части мы рассмотрим более сложный вариант, с использованием опен сорс CMS решения для управления данными сайта. Весь код в данном руководстве представлен в синтаксисе javascript/hml/css и bash.

Читать далее

Стартап в Соло. Часть 4: техническая реализация

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели5.4K

В этой статье хочу рассказать, как технически устроен мой Telegram чат для сайта, из каких компонентов состоит и с какими подводными камнями я сталкивался.

Читать далее

Вечный RnD: chunk flushing для серверного рендеринга React + WMF

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели3K

Все говорят про webpack-module-federation - микрофронты тут, микрофронты там.
— "А мы уже внедрили", "а мы уже построили микрофронтовую-архитектуру", "мы релизим независимо".

Но начинаешь расспрашивать, "а что сделали", "а как связали" - выходит что за всеми этими броскими фасадами скрывалось добавление вызова ModuleFederationPlugin(...) на уровне рядового потребителя, в лучшем случае с подстройкой конфигурации под локальный и продуктовый стенды. А независимые релизы - обычный авто деплой trunk'а.

На этом фоне доклады, повествующие о динамическом развертывании k8s pod'ов с версиями микрофронтов, указанных в заголовках браузера (на базе argo-cd) производят вау-эффект. Но даже все эти истории имеют один общий недостаток.

На вопрос:
— А как вы реализовали SSR?

Следует ответ:
— Мы не стали этого делать, у нас админка / дэшборд / MVP / *.

Читать далее

Node.JS: заменили модуль SSH2 на OpenSSH и снизили задержки eventloop в 15 раз

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.6K

В нашем сервисе мониторинга и анализа PostgreSQL доступ к серверам осуществляется по протоколу SSH. В качестве ssh-клиента мы используем популярный модуль SSH2 , однако при передаче данных большого объема этот модуль вносит существенные задержки в event loop. Как их можно снизить - расскажем в этой статье.

Читать далее

Как фронтендер подписывать CSR учился

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели9.2K

В статье рассказываю про опыт изучения Certificate Signing Request (CSR) формата. О том, что такое PEM, DER, какова структура самого CSR файла и как последний подписывается. А также поделюсь, с какими сложностями в процессе изучения я столкнулся.

Читать далее

Веб-скрейпинг с помощью JavaScript и Node.js — исчерпывающее руководство

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели38K

Веб‑скрейпинг давно перестал быть задачей только для Python: в экосистеме JavaScript есть достаточно инструментов, чтобы собирать данные со статичных страниц, работать с динамическим контентом и автоматизировать браузерные сценарии.

В статье разбираем, чем отличаются Axios, Cheerio, Puppeteer, Playwright и другие библиотеки для скрейпинга на Node.js — и в каких случаях их стоит использовать.

Читать далее

Бот из машины. Как инженеру сократить время на диагностику дисков

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6.7K


Привет, Хабр! Меня зовут Дмитрий, я старший системный инженер в дата-центре Selectel, работаю с серверами и клиентским оборудованием.

Каждый день я обрабатываю десятки клиентских обращений. Часть из них связана с физическим участием, когда нужно ногами пойти к серверу и руками заменить комплектующие. Такие задачи роботу не поручить. Но я нашел способ экономить себе и коллегам несколько часов в месяц с помощью бота, способного быстро диагностировать состояние дисков. Также он снижает влияние «человеческого фактора» на задачи, которые надо решать с высокой скоростью и вниманием к деталям.

В статье я расскажу, как написал бота, запустил его в облаке и автоматизировал замену накопителей в выделенных серверах.
Читать дальше →

Playwright и Puppeteer в 2023 году: что выбрать

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели13K

Дебаты по поводу выбора между Playwright и Puppeteer — это большая дискуссия, поскольку они обе являются фантастическими библиотеками Node.js для автоматизации браузера. Хотя эти библиотеки делают практически одно и то же, между Puppeteer и Playwright есть несколько заметных различий.

Читать далее

Как сайты определяют ботов? Деобфускация Akamai Bot Manager 2.0

Уровень сложностиСредний
Время на прочтение47 мин
Охват и читатели29K

Akamai Technologies - американская компания, занимающаяся защитой веб-ресурсов от ботов с помощью своего продукта Bot Manager. В её портфолио числятся такие гиганты ритейла, как Nike, Adidas и Asos, для которых особенно важен контроль за ботами, автоматизирующими процесс выкупа редких/лимитированных товаров с целью их перепродажи по завышенной цене. В данной статье мы взглянем на скрипт антибота Akamai и рассмотрим, какие методы обнаружения через JavaScript в нём используются. Не знаете почему обнаруживается ваш selenium? Добро пожаловать!

Читать далее

Ближайшие события

Как мы быстро запустили мобильное приложение и споткнулись о свой успех

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели7.3K

Привет, Хабр! Мы крупная производственная компания с 50К+ сотрудников, и в 2019 году поняли, что нам нужно мобильное приложение. Срок реализации 5 месяцев. Какой стек вы бы выбрали при такой скорости? Мы выбрали нативные Kotlin и Swift. Поначалу запилили всего 6 сервисов (новости, зарплатный лист, отпуска, блоги, регистрацию опасностей, выдачу СИЗ), и даже при том, что нанесли минимальную пользу, приложение очень зашло, количество пользователей начало расти лавинообразно. И тут мы поняли, что серверная часть на node.js + PostgreSQL создана без всякой мысли о развитии и масштабировании, решала исключительно локальные задачи. Все было на неоптимальной монолитной архитектуре, развивать и поддерживать которую просто нельзя.

Расскажу, как мы решили проблему.

Читать далее

Подготовка шаблона приложения на Typescript с Nest, Nuxt 3 и Docker

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели18K

Решил описать свой подход построения окружения на Typescript с Nest на бекенде, Nuxt (SPA) на фронтенде. Все заворачивается в один docker‑образ и запускается как standalone приложение c nginx, healthcheck»ами, тестами и ш…широкой сферой применения.

Читать далее

Создание «Google Sheets» через Websockets на Node.js

Время на прочтение10 мин
Охват и читатели7.8K

Введение

Всем привет! Меня зовут Герман Панов и в этой статье мы разработаем табличный редактор - аналог Google Sheets (в упрощенном виде), работающий на основе вебсокетов, чтобы познакомиться со способами применения этой технологии в браузерах.

Поскольку цель - ознакомление, код будет не очень «чистым», но для базового примера этого будет достаточно. В качестве серверной платформы будем использовать Node.js, также потребуется пакет ws, предоставляющий API для работы с вебсокетами на сервере.

Читать далее

Стартуем микросервис на Node.js + fastify + Typescript + prisma + mongodb + grpc

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели21K

Зачастую возникает необходимость начать новый микросервис.

Вот и у меня совсем недавно возникла такая потребность. А ведь еще хочется и чего-то новенького попробовать.

Сперва был определен стек и хотя процесс для меня не новый, но я столкнулся с множеством подводных камней. В результате решил сделать этот туториал!

Читать далее

Пишем умный поиск по коду с Open AI

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели12K

В этой статье мы кратко рассмотрим технологию, которая лежит в основе ChatGPT — эмбеддинги, и напишем простой интеллектуальный поиск по кодовой базе проекта.

Читать далее

filebump — хостинг файлов по API / свой локальный upload.io

Время на прочтение3 мин
Охват и читатели5.4K

У нас несколько сервисов, где пользователи загружают файлы, отправляют файлы, обмениваются файлами.

И делать в каждом сервисе свой сервер, где можно было бы получить ссылку на файл, передать через очередь, отправить, обработать - может быть не надо?

В одном сервисе - это загрузка аватарок, в другом - это различные пользовательские файлы, по сути в транзите, в третьем - это файлы, загружаемые для конфигурирования сервиса, используются время от времени.

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

Поэтому появился filebump - простой http сервер, где мы можем загружать, хранить и скачивать файлы.

Читать далее

Chrome Headless против cloudflare JS challenge

Уровень сложностиСредний
Время на прочтение41 мин
Охват и читатели34K

Автоматизация сбора информации с различных ресурсов - обычная задача для людей разных сфер деятельности. Жаль, что не всегда бывает достаточно сделать простой GET запрос и разобрать полученный html. Веб-сайты, с которых собираются данные, принимают защитные меры для предотвращения автоматизированных запросов. Одной из таких мер является использование cloudflare. Сегодня мы посмотрим, как cloudflare выявляет ботов через javascript и коснёмся темы деобфускации скриптов.

Читать далее