TGViewer
Channel Public Channel
Node.JS [ru] | Серверный JavaScript

Node.JS [ru] | Серверный JavaScript

@we_use_js

Node.js, backend и AI-разработка: статьи, новости, вайбкодинг, автоматизация и работа с ИИ-агентами.

Личный блог автора - @just_genych
По вопросам рекламы или разработки: @g_abashkin

РКН: https://vk.cc/cJPGOP
Subscribers
10.7K
Photos
339
Videos
17
Links
3.8K

Showing posts older than #5734 · Back to latest

Older Posts 20 shown
Post #5733 963
Next.js, внешний API, Zod, нормализация и controlled fallback

Любой внешний API тащит свою модель данных: как названы поля, что там за вложенные объекты, где картинки, где цены, по каким правилам крутится пагинация — всё это вотчина провайдера. А UI приложения живёт в собственной модели, и с чужой она не совпадает.

Начнёшь дёргать event._embedded.venues[0].city.name напрямую из компонента — и всё, структура внешнего ответа расползлась по интерфейсу. Провайдер поменял API — у тебя поехали карточки, detail page, search, metadata и тесты.

В App Router запрос наружу можно гонять на сервере: Server Components умеют fetch, а серверный код в клиентский bundle не просачивается. API key при такой схеме остаётся вне браузера — документация Next.js описывает server-side data fetching для App Router. В учебном проекте EventMap внешний источник событий ходит через серверный API-слой.

Читать далее

👉 Node.JS [ru]
  • 👎 1
Post #5731 886
Форма, которая знает слишком много: как превратить правила СХД в состояние UI

Жила-была команда, и занесло её на сложную форму для систем хранения данных. Теперь ребята выкладывают опыт: на руках три разных сценария, на выходе один интерфейс — и при этом не пришлось плодить дублирующееся состояние и утопать в обработчиках.

Читать на Habr: habr.com/ru/companies/aerodisk/articles/1083430

👉 Node.JS [ru]
Post #5730 890
Telegram Serverless: бота реально поднять вообще без своей железки

В BotFather всплыло сообщение про ранний доступ к Telegram Serverless. Идея простая: код бота крутится на инфраструктуре самой Телеги — ни VPS тебе, ни Docker, ни nginx, да и внешняя база данных вроде как не нужна.

Автор копнул, что конкретно там сделали, как теперь выглядит разработка и правда ли можно собрать бота, у которого своего сервера нет в принципе. Но сразу оговорка: это пока early access, ограничения прилагаются, а привычную связку Python + aiogram туда в один клик не закинешь.

Читать далее

👉 Node.JS [ru]
  • ❤ 4
  • 😁 1
Post #5729 819
«Протез для силы воли»: расширение Curfew против думскроллинга

По словам автора, он долго жил без понятия, сколько часов сливает в ленте Х, и это его, мягко говоря, подъедало. На смартфоне тебе в помощь вагон приложух, которые считают экранное время в любой софтине. А десктоп — это другая планета: тут каждый чих собираешь руками, по кусочкам, и всё это через одно место работает.

Расширения от думскроллинга в браузере он щупал разные, но у всех один и тот же косяк: блокировку раз плюнуть обойти. Усилий на обход надо меньше, чем запас лени — причём настолько меньше, что лень не успевает даже пикнуть своё «да забей ты». На телефоне порог тоже так себе, но там есть родительский контроль и сторонние тулзы, которые добавят трения.

Пока автор писал материал про харнесс, его посетила мысль: такой же структурный подход неплохо бы прикрутить и к себе — чтобы срывы упирались не в уговоры с самим собой, а в перекрытый путь к обходу. В том тексте разбирали Atomic Habits и его методы закрепления хороших привычек, но там же есть и приёмы против дурных, включая банальное «убрать с глаз долой», а самый рабочий инструмент — наша собственная лень. Вот так и родился Curfew — браузерное расширение, которое следит и режет дневные бюджеты на «вредные» сайты.

Читать далее

👉 Node.JS [ru]
Post #5721 851
Жмёшь кнопку — в ответ тишина. Как не профукать действие юзера и не наплодить дублей

Юзер тапнул, связь отвалилась — и браузер сидит, не в курсе, доехал запрос до сервера или нет. Шлёшь повтор — получаешь дубль. Не шлёшь — действие улетает в никуда.

В материале разбирают схему, которая закрывает оба этих случая: API без toggle, ключ идемпотентности в PostgreSQL, очередь в IndexedDB, Service Worker и проверка офлайна в Playwright. Автор сразу предупреждает: это не полноценный offline-first, а только страховка действий в момент, когда связь рвётся.

Разобраться с повторами

👉 Node.JS [ru]
  • 👍 1
Post #5718 880
Зачем Lovable сделала Vite-совместимый dev-сервер на Rust

У Lovable в сутки крутится миллион dev-серверов Vite. Отсюда и растут ноги: инженер компании Рафаэль Аморим собрал OJ — dev-сервер на Rust, который подхватывает твой уже имеющийся vite.config.ts и гоняет плагины Vite. Но с прицелом на скромный жор памяти и быстрый холодный старт.

Штука открытая. Правда, пока экспериментальная.

Больше деталей — в выпуске React Status #491: react.statuscode.com/issues/491

👉 Node.JS [ru]
  • 🔥 1
Post #5716 951
Polymorpheus: та самая недостающая деталь в пазле Angular

Angular — фреймворк хороший. И заботливый: кучу всего там уже продумали за тебя. А если внезапно приспичило что-то нестандартное — текущее поведение обычно спокойно переопределяется или докручивается.

Вот про один такой кейс автор и рассказывает. И заодно показывает инструмент, который слепил много лет назад и с тех пор считает обязательной базой для Angular. Это маленькая библиотека Polymorpheus — в Taiga UI она попадается буквально везде, где надо вывести динамический контент.

Читать далее

👉 Node.JS [ru]
  • ❤ 1
Post #5714 879
Тестим смарт-контракты на Hardhat 3: node:test, viem и ни одного mocha

Hardhat 3 слил mocha вместе с chai. Теперь тесты крутит встроенный node:test, а с контрактом болтает viem.

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

Читать далее

👉 Node.JS [ru]
Post #5713 874
Марио, только про джуна: платформер на 40 КБ и бот, что принимает уровни

За этим стоит фронтендер. По вечерам он ковыряет Workaem — агрегатор вакансий в IT. А рядом захотелось чего-то совсем несерьёзного, и за выходные вылезла аркада в стиле Марио, но про карьеру в айти — «Путь джуна». Грибы тут заменили офферами, черепах — легаси, а в замках вместо дракона тебя ждёт собеседование: от тестового до финального.

Дальше накинул ещё пару вечеров, и по ходу вылезло столько всего, чего фронтендер раньше в руках не держал: физика с фиксированным шагом, процедурная генерация уровней, синтез звука, античит на таблицу рекордов и баги, которые глазами вообще не выцепить. Claude пихался в процесс активно, но когда уровень внезапно не проходится или таблица рекордов нагло врёт — разбирался своими руками, в основном по скриншотам и логам. Без файлов графики игра тянет 40 КБ, а каждый уровень перед выкладкой прогоняет бот.

Читать далее

👉 Node.JS [ru]
Post #5710 757
🤣 Просто не самый надёжный протокол передачи данных

💥 xCode Journal
Post #5708 849
«Обратная змейка», часть 2: разбор фидбека, правка багов и свежий босс

Когда выкатывал первую часть, честно ждал десяток лайков и гробовую тишину в комментах. Кому вообще сдалась змейка, склеенная за пару вечеров? Ага, размечтался. Комментов прилетело прилично, и половина — не дежурное «мило, годно», а нормальный такой разбор: одному баг попался, второму — спавн змей аккурат под носом у игрока, а третий вообще начал кидать сравнения — то Pac-Man, то Asteroids.

Сам автор не отпирается: технически игра работала. Но кое-где — не на 100% от своей же задумки, а это, согласись, не то же самое, что «работает хорошо». Так что он решил пройтись по всему списку, а не отделаться сердечком в ответ.

Читать далее

👉 Node.JS [ru]
Post #5706 842
Functional Programming Jargon, Mapped and Explained

Популярный справочник по жаргону функционального программирования от делегата TC39 Hemanth HM теперь представляет собой исследуемую карту концепций, которая показывает, как они связаны между собой. У каждого понятия — простое определение и пример на JavaScript: каррирование, чистота, функторы, монады и другие.

Новость опубликована в выпуске #802 от 15 сентября 2026 года.

Читать: javascriptweekly.com/issues/802

👉 Node.JS [ru]
Post #5705 848
Было время, когда CSS умел запускать JavaScript

Frontend Focus #758, 16 сентября 2026. Внутри — материал Declan Chidlow «CSS Curiosities of the Past». Это прогулка по тем самым костылям, которыми народ заставлял браузеры слушаться. И главный страдалец тут — Internet Explorer.

Что разбирают: «star hack», CSS expressions (да, JS прямо в твоём CSS), DirectX-фильтры IE и легендарный box model hack.

Источник: Frontend Focus #758

👉 Node.JS [ru]
  • 🔥 1
Post #5703 909
Распиливаем фронтенд на модули и сшиваем обратно: разбор на маркетплейсе

На живом маркетплейсе разберём: как раздробить приложение на feature-модули, как склеить сервисы через DI, как разложить состояние по местам и как запереть всю возню с браузерными API в изоляции.

Читать далее

👉 Node.JS [ru]
Post #5700 899
JS/TS-библиотека для транслитераций между 50 языками — 2450 комбинаций

Под транслитерацией обычно понимают одну вещь: русский текст, набранный латиницей. Но это лишь половина истории — романизация. А вот решений, которые умеют в обратную сторону, из латиницы в нелатинские письменности, уже заметно меньше. Ну а переводы между самыми разными письменностями и языками вообще — армянский в греческий, хинди в арабский, чешский в корейский — там практически пусто. И у существующих библиотек хроническая беда: контекст им неинтересен, работают побуквенно, а на выходе — каша, плюющая на правила языка. 北海道 (Хоккайдо) превращается в Bei Hai Dao, а بغداد (Багдад) — в bGdd.

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

Читать далее

👉 Node.JS [ru]
Post #5699 918
Где жить Node.js-приложению и Next.js-сайту с SSR в 2026

Внутри — про профильные PaaS-облака и про нюансы хостинга сайтов с SSR (рендеринг на стороне сервера): React (Next.js, Remix, Astro), Vue (Nuxt.js, Quasar), Angular. И про то, где у сервисов сильные стороны, а где слабые.

Ещё отдельным блоком — VPS и Serverless-провайдеры. Плюс пример: деплой Node.js-приложения с BullMQ и Redis.

Читать далее

👉 Node.JS [ru]
Post #5697 954
Пару месяцев назад автор залип на вопросе, на который внятно ответить не мог: когда крутишь кейс на очередном CS2-сайте — тебя кидают на ролле или мухлёж где-то в другом месте? Таких сайтов десятки, бабки там гоняют серьёзные, а исходники не выкладывает ни один. Снаружи — вертушка и кнопка «открыть». Внутри — Steam-боты, эмуляция клиента, HMAC, бухгалтерия на целых числах и очень конкретная математика, которая устроена так, что на дистанции всё равно в плюсе сайт.

Чтобы ответить не на уровне «да там одни скамеры», а с доказательствами, автор написал такой сайт с нуля и выложил под MIT. Не «демку с анимацией», а весь цикл: вход через Steam, открытие кейса с проверяемым роллом, продажа и апгрейд предмета, заявка на вывод, которую реально отправляет торговый бот, и админка, где кейс собирается по RTP ещё до того, как уйдёт в прод.

И пока он это писал, вылезло главное — дело не в жульничестве с роллом. Жульничать там просто не нужно. Репозиторий: github.com/ialakey/caseforge. Читать далее

👉 Node.JS [ru]
  • 🔥 1
Post #5696 943
Как запихнуть Angular-приложение в Minecraft

Что нужно, чтобы Angular-приложение ожило прямо в Minecraft и реагировало на то, что делает игрок? В разборе — своя платформа, Renderer2, layout на Yoga, а текст и картинки выводятся блоками.

На выходе — интерактивный прогноз погоды. Крутить им можно прямо из мира игры.

Читать далее

👉 Node.JS [ru]
Post #5695 930
Kwork Hider: расширение, что вешает кнопку «Скрыть» на проекты в Kwork

На kwork.ru/projects ежедневно вылезает 50 проектов, и добрая половина — вообще не твоё. Кнопку «Скрыть» туда не завезли, вот и листаешь один и тот же шлак по десятому кругу.

Расширение Kwork Hider написал автор. Кто по этой ленте ползал — вопросов не задаёт.

Читать дальше: habr.com

👉 Node.JS [ru]
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →