Обновить
33.8

Node.JS *

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

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

Книга: «Эффективный Node.js»

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

Привет, Хаброжители! Node.js — это технология, которая изменила современный веб. Более 10 миллионов разработчиков по всему миру используют ее для создания быстрых и масштабируемых приложений.

Эта книга поможет вам присоединиться к их числу и превратить знания JavaScript в уверенные навыки бэкенд-разработки.

Вы научитесь создавать надежные, быстрые и масштабируемые приложения, востребованные в таких компаниях, как Amazon, Netfl ix, LinkedIn.

Читать далее

Новости

Глобальная область видимости в JavaScript

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

Как любой другой язык программирования, JavaScript позволяет создавать элементы доступные в любом месте приложения. И, как и с другими механизмами, JS тут имеет свои уникальные, но важные особенности, которые мы подробно сейчас рассмотрим.

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

Какие ещё формы?

Git-хуки, которые не дают коммитить плохой код

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

Здравствуйте, коллеги программисты!

Большинство фейлов в CI — это мелочи: забытый console.log, форматирование, линт, сломанный импорт, файл без теста. Такие ошибки не должны доезжать до сборки или код-ревью.

Git-хуки позволяют запускать проверки прямо во время git commit и блокировать коммит, если были обнаружены нарушения.

В прошлой статье я рассказывал про скрипты, которые я использую для проверки качества кода в PHP/Laravel.

В этой статье я хочу рассказать о скриптах для JavaScript/TypeScript и Python — линтинг, форматирование, тесты, статический анализ и проверка наличия тестов.

Все скрипты, описанные в статье, находятся здесь.

Читать далее

Батчинг запросов в Prisma: объединяем несколько запросов в один вызов БД

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

В версии 1.58.0 библиотеки prisma-sql появился метод $batch, который позволяет выполнять несколько Prisma-запросов за один раунд-трип к базе данных.

Читать далее

Ошибка в $5 000 на TON из-за кода, написанного нейронкой

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

Наконец таки статья о том как я облажался. Точнее — как облажалась команда, но ответственность все равно моя. Это разбор конкретной ошибки, которая стоила реальных денег.

Читать далее

MongoDB, Clerk и Nginx-прокси: строим горизонтально масштабируемую архитектуру почти бесплатно

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

Что делать, если после статьи на Хабре количество пользователей выросло вдвое (даже если их стало всего десять)? В этой статье я пройду путь от "крепкого" монолита до взрослой архитектуры с разделением на API, Web и Auth. Поделюсь опытом создания изолированного тестового контура и разберу, почему модная связка Bun + Vercel на реальном продакшене может стоить вам нескольких седых волос и часов дебага.

Заглянуть под капот

Moltbot: 83 сценария использования open-source AI-агента

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

Бесплатный агент с 100K+ звёзд на GitHub, который реально выполняет задачи — не просто отвечает текстом.

Читать далее

Реально ли вайбкодингом без профильных знаний написать простую игру и захватит ли ИИ программистов в ближайшем будущем?

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

Детскую игру на листочке переводим в браузер с помощью ИИ. Повайбкодим и испытаем на себе, на сколько это возможно, чтобы за тебя писал код ИИ на самом простом примере.

Читать далее

Инвестиционные боты (почти) с нуля. Часть 2: свечи и индикаторы

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

Всем привет.

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

Читать далее

Serverless паттерн Lambdalith или «Монолитная лямбда»

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

Здравствуйте, товарищи! Недавно мне понадобилось сделать простой бэкенд для онлайн-песочницы в своем open source проекте. Сейчас для таких задач есть много конструкторов и low-code решений, типа n8n. Но я "по старинке" решил взять serverless с лямбдами, поскольку в позапрошлой компании плотно работал с этим стеком.

Вспоминая тему serverless, я обнаружил, что в русскоязычном пространстве, и на Хабре в частности, почти не освещена одна полезная техника. Пришло время исправить ситуацию и заполнить пробел данной статьей!

Читать далее

Всплытие переменных и функций в JavaScript

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

В JavaScript есть уникальная особенность, переменную или функцию можно использовать по коду выше, её объявление...

Ииии что это за особенность?

Моя RAG-система: как я за 8 дней собрал RAG для своего сайта визитки

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

За 8 дней частичной занятости я собрал RAG-систему на NestJS + PostgreSQL (pgvector), которая обрабатывает ~11 000 чанков документов.

Первая версия отвечала около 4 минут, после оптимизации - 40–60 секунд.

Главный вывод: RAG - это не «векторный поиск + LLM», а в первую очередь подготовка данных, фильтрация контекста и аккуратная работа с промптами.

Читать далее

Cryanide как альтернативная ветвь развития web-технологий

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

Кратко о том, почему я не использую фреймворки, зачем пишу всё с нуля и к чему это привело.

Я написал полноценный SDK для web-приложений как концепт альтернативной ветви развития, если бы web-индустрия пошла по пути игровых движков.

Почему и зачем?

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

Тихий Promise, который убьёт ваш сервер Node.js

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

У вас есть продакшен-сервер. Он спокойно работает часами. А потом внезапно падает. Без предупреждения, без graceful-деградации. Просто мёртв.

Виновник? Одна строчка кода, которая выглядит совершенно безобидно...

Читать далее

Как реализовать 5 уровней оптимизации и не сойти с ума

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

В этой статье я подробно опишу 5 стадий принятия неизбежного  уровней оптимизации. В качестве примера рассмотрим, как я пытался оптимизировать функцию для инструмента командной строки, который я сам и написал  I (monorepo-hash).

Примечание

Я не настаиваю на том, что изложенное здесь — 5 священных заповедей инженерии производительноcти, а также не утверждаю, что приведённые здесь приёмы точно соответствуют каким-либо «карьерным уровням». Их можно сравнить просто с вешками на пути.

Это всего лишь тот путь, который проделал я сам. Есть в нём доля эго, пару раз я свернул не туда, бывали и случаи «я знаю, как тут срезать дорогу», за которыми сразу следовало раскаяние.

Также отмечу, что значительную часть этого CLI я написал при подспорье ИИ-моделей. Считайте, что это лёгкий способ подмечать ошибки и находить, что можно оптимизировать.

Кликбейтный заголовок? Что ж, даже, если так — вы же открыли статью, значит, он сработал :)

Читать далее

Дочерние процессы в Node.js

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

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

Если воркеры запускают отдельный поток внутри одного процесса в котором работает программа, то модуль child_process порождает новый процесс в ОС, что является гораздо более тяжёлой операцией. Архитектура многопоточки в JavaScript, такова что потоки максимально изолированы друг от друга и не имеют общей памяти. Тем не менее есть масса способов обойти это ограничение если очень нужно и в своих статьях я приводил подобные примеры. С процессами всё иначе. Они жёстко изолированы, один от другого и пробить этот барьер способов нет.

Если говорить простым языком то воркер, это как нанять ещё одного гребца на Вашу галеру. С ним можно быстро и легко общаться, ведь вы буквально находитесь на одном суде (процессе) и даже на прямую без посредников обмениваться сообщениями (SharedArrayBuffer). Но вот если он зарулит на скалы, то и потоните вы тоже вместе. Дочерний процесс же это как построить новую галеру с другим капитаном и экипажем. Дорого, долго, обменивать данными можно только через медленные записки (IPC), зато он полностью независим от Вас, а Вы от него.

Как-же запустить эти дочерние процессы?

Мои любимые паттерны для full-stack и frontend-проектов

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

Проверенные в бою паттерны для проектов на React + TypeScript: фабрики ключей запросов, server actions, права доступа через CASL и многое другое.

Читать далее

Миграция проекта с Node.js на Java-стек с помощью ИИ

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

Один из наших проектов нужно было перенести на Kotlin, чтобы включить его в общую экосистему клиента и упростить поддержку. Мы должны были курировать процесс и следить за итоговой реализацией, в которой заказчик решил использовать ИИ.

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

Читать далее

Инвестиционные боты (почти) с нуля. Часть 1: теория и первые шаги реализации

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

Всем привет.

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

Читать далее

Мой дашборд

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

Дома у меня лежали несколько старых Android-устройств. Они работают, но давно не используются и просто лежат без дела.

Я стал думать, как их можно использовать. Хотелось чего-то простого и полезного: показывать информацию и иногда вводить данные. Ничего сложного, просто что-то, что реально будет использоваться. Так появилась идея превратить их в дашборды.

Потом я понял, что для этого нужна веб-часть и мобильное приложение. Сделал веб-приложение на Analog и Android-клиент на Ionic Framework. В разработке активно помогал AI-ассистент из Qoder — он сильно ускорял работу и решал много задач сам.

Проект пока ещё в процессе, но я решил написать о нём пост. Возможно, кому-то пригодятся мои наработки.

Читать далее
1
23 ...