Latest posts

Node.JS [ru] | Серверный JavaScript
22 Sept, 17:07
Свой localhost можно выкинуть в интернет за пару секунд. Бесплатно, силами Cloudflare.Хватит одной команды в терминале:cloudflared tunnel --url http://localhost:8000Зачем это вообще нужно: гонять локальные проекты наружу, ловить вебхуки, показывать клиенту, что там у тебя работает, делать быстрые превью. Ну и пускать ИИ-агентов в приложения, которые крутятся у тебя на машине.try.cloudflare.com👉 Node.JS [ru]
Node.JS [ru] | Серверный JavaScript
22 Sept, 14:45

Node.JS [ru] | Серверный JavaScript
22 Sept, 13:07
Кажется, у Jev нарисовался конкурент из открытого лагеря — Laya. Локальная открытая модель для принятия решений на 421 млн параметров, заточена под структурированные решения: быстрое да/нет, оценка, выбор из вариантов. Ест меньше 1 ГБ памяти, бесплатно лежит на Hugging Face, крутится на ноуте и даже на телефоне.Теперь тест. Laya против облачного Jev — одна и та же змейка, одинаковый формат решений, 30 секунд на всё. У Laya: счёт 46, длина 52, 86,5 решений в секунду, P50 около 9 мс. У Jev: счёт 1, длина 7, 3,2 решения в секунду, полный цикл запроса к API 317 мс. На M5 Pro медиана вышла 15,3 мс у локальной Laya против 298,1 мс у облачного Jev — почти 20-кратный разрыв в этом тесте. Ключевая разница в том, что Laya решает каждый шаг на месте, а Jev на каждом шаге стоит и ждёт ответа от облачного API.Правда, проект сам честно называет два ограничения: контекст всего 512–1024 токена, так
Node.JS [ru] | Серверный JavaScript
22 Sept, 09:07
Четверо в одной транзакции: кейс-батлы, PgBouncer под Prisma и реплика, которая показывает пустой инвентарьПро этот сайт с кейсами CS2 уже вышло две статьи, и обе заканчивались перечислением того, чего на нём до сих пор нет: платежей, депозита предметов, кейс-баттлов, рефералки, KYC. Что ж, список теперь исчерпан. И почти вся сложная часть ужалась до одного вопроса: что вообще творится, когда несколько человек разом двигают одни и те же деньги?Внутри — батл на четверых в рамках одной транзакции, порядок блокировок, благодаря которому дедлок не прилетает, PgBouncer под Prisma и правило про чтение с реплики, которое типом ну никак не описать.Читать далее👉 Node.JS [ru]![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/vmBX3kosdULdKIaG9C_N7kYyZjtmbod6On8I2JOmUVnuclnvq8Xoc6A_AmtInUi06MsKl0YzZRdPtYm4ACBleMdlMmoR6vBhsMM4bys5Q7Y7dEmweYtgRDblFtzBJ67dTZd5PprGIo2Jd1oIKEMfeLzHf1j5XeBlB6VpUh-6zaxshcI90SxH0f83wER9XkGRU76F8KW2K0ADm-qMSg10vb6E4qshbw2E1a0-yLmC0NphVZYvSERO1czN2vFda5sFD348XG9TOl_M95PoZSRvw1DFdZOT-aiwUVp1YT8YS9BAF05Bt3783OAfJRat-g2WLTRu8Z2VjXeWqc3j19xtpA.jpg)

Node.JS [ru] | Серверный JavaScript
22 Sept, 07:29

Node.JS [ru] | Серверный JavaScript
21 Sept, 17:07
Diablo II, римские стратегии и Prince of Persia: чему фронтенд может поучиться у геймдеваВ Diablo II статы скиллов лежат в обычных текстовых файлах — захотел покрутить баланс, пересобирать игру не придётся. В Prince of Persia 1989-го поведение героя расписано через состояния и переходы. А в градостроительных стратегиях сборщик налогов сам решает, что делать дальше, опираясь на набор правил.Геймдев давно закрыл кучу задач, над которыми фронтенд до сих пор чешет репу. В статье — какие инженерные приёмы из игр тащат в веб и что ты с этого получишь на практике: контракты и моки, конечные автоматы, событийная модель, pattern matching и деревья поведения.Читать далее👉 Node.JS [ru]![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/v-KPfzxkhhiNuKXPe0O-PfHDr3FstvTaFtYVl1qsrw6mbHE-Xl7_OSWxjTeBBVzxuLM8hj_l1_PBnA7Soj4DgzkTltAUXnn_z2nVTRgObs40mT4_ekM9YFPvuTh2LKfS_ynZiUOv1ltPH6dAAzsUhf9XwWHE-yeoQ__CdDegUsv2Zk8ZV1f4nWoUxSBUvAaKTSbY_26KomoM7dPvDIJtxFNc6w31c4VASJa8R4REAs6RR0mafKe8rWYkjnmgofLM41IjfO2mzi4i6HZ-DSFEF9DMw4zcxtSaulHkb1a_lNQxXwcnQXgfDyBCQgsmVRogQoBAMZdgri_3aSTjBftGFw.jpg)

Node.JS [ru] | Серверный JavaScript
21 Sept, 13:07
«Я профессионально создаю библиотеки 5 лет»Говорит, что первую свою библиотеку залил в npm 7 лет назад — custom-border-mixin. И ради этого тупо выпал из жизни на неделю: хотелось в кайф написать SCSS-миксин.Любопытно, где в SCSS вообще можно веселиться? Глянь на хелпер.Читать на Habr👉 Node.JS [ru]
Node.JS [ru] | Серверный JavaScript
21 Sept, 09:07
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-слой.Читать далее![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/IQ4IeuSr0SHHb4CjGJidysR61XUB_isXGFw5m4FKJSvtNHD_uM47-l6ntwlBE5X70KDe5Ha6NedGacXE9881-vCnoo0G5SY9wEALdvxqybswb1ve3VHvxfQSmw3Pxpn5bDzwI_25JRhHZBzEZa5jbAR5mAVRdv16KRruEIswnigK8k_MxmaE_VWBlSCQ8SoY6e6wQ1vR2BPo75jdqPbECmjOIv-0l4oGXE_k4M4AcwZNNEIPVWjPiGENYa3ywVhCeVYTwuT7ex4HsrgxgTBsPZHZZDMKJ9xrS2eY_lBV3-ZJ5CwXT_2QmMvetNMto12a5LhOkXJmISEzcfCWNJwS9A.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)

Node.JS [ru] | Серверный JavaScript
21 Sept, 08:49

Node.JS [ru] | Серверный JavaScript
20 Sept, 17:07
Форма, которая знает слишком много: как превратить правила СХД в состояние UIЖила-была команда, и занесло её на сложную форму для систем хранения данных. Теперь ребята выкладывают опыт: на руках три разных сценария, на выходе один интерфейс — и при этом не пришлось плодить дублирующееся состояние и утопать в обработчиках.Читать на Habr: habr.com/ru/companies/aerodisk/articles/1083430👉 Node.JS [ru]![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/oUIKpayoW-2yqxM7cil_ADjIp1eTtDrdKz6FqGxFoOKJbB0H1WvhnHVyKZxDlaC7Gm9y7o7h-64fk0tfT7pR4GmZV5irmBIEd5EYCvhEplKov4zCz14hqIX8jMBw8EMxAHi1vfAcEuuOvZjbmLHSGq0FKZYjL_N04_7c_xyk_XHZ8peZK-GsC_zXp0UbAKtwZ9ZNM_J7Ujnvi4m0RY4SG1YCOE4FvBIa-WCuEvyVNZ2hoDcPGuy6DVTXErSk6KC0_vc3VCyivT0mylr5wM4eXKAuSHWvGvPugn8WvRIO2QRWcLexZciDz4gVxb8UtMYo9dv9cbgrW-F5CKr1v8xJFA.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)

Node.JS [ru] | Серверный JavaScript
20 Sept, 13:07
Telegram Serverless: бота реально поднять вообще без своей железкиВ BotFather всплыло сообщение про ранний доступ к Telegram Serverless. Идея простая: код бота крутится на инфраструктуре самой Телеги — ни VPS тебе, ни Docker, ни nginx, да и внешняя база данных вроде как не нужна.Автор копнул, что конкретно там сделали, как теперь выглядит разработка и правда ли можно собрать бота, у которого своего сервера нет в принципе. Но сразу оговорка: это пока early access, ограничения прилагаются, а привычную связку Python + aiogram туда в один клик не закинешь.Читать далее👉 Node.JS [ru]![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/G8DDP2ecCfc10_yPVlU1z0ZbC75oqzKK0F9INXEB6yQkipWLnygjfznUUt_hLeyKejNMmfyTihfNNDW_erx47XAaHmYAtu5dGjk6px-j57kZ7QuzQnA-DGqyi4UBJVNgWXWhZei92KlJP6zoe4lsocWr27P9O20ikTiE956MIlkIYh62MK_TX8JOjkczfKXCuykt1Ec5g3kh1r38AatwmF0Nr81qe2im3_FnQ3OPVEPd1MeLdaI752ai9zY01sbKI2dxyuHZ-7Ya9eXXkM9d86sXERmKoAyPXfugO4W3F6RVgm0BoAyrhXei831r6SblKB4737M_8W39uPh6qNd6ww.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)

Node.JS [ru] | Серверный JavaScript
20 Sept, 09:07
«Протез для силы воли»: расширение Curfew против думскроллингаПо словам автора, он долго жил без понятия, сколько часов сливает в ленте Х, и это его, мягко говоря, подъедало. На смартфоне тебе в помощь вагон приложух, которые считают экранное время в любой софтине. А десктоп — это другая планета: тут каждый чих собираешь руками, по кусочкам, и всё это через одно место работает.Расширения от думскроллинга в браузере он щупал разные, но у всех один и тот же косяк: блокировку раз плюнуть обойти. Усилий на обход надо меньше, чем запас лени — причём настолько меньше, что лень не успевает даже пикнуть своё «да забей ты». На телефоне порог тоже так себе, но там есть родительский контроль и сторонние тулзы, которые добавят трения.Пока автор писал материал про харнесс, его посетила мысль: такой же структурный подход неплохо бы прикрутить и к себе — чтобы срывы упирались не в уговоры с![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/CPKD-mjoLs7SVr-QxzA88zeaokyl1K4LQ4VG8MaQUUiGNs5O37aOrdLaZyNIw9y1Tx7JMOoX1Ebv3tNq8LWa1jCyDhlMsiE1OmvAVm1xbhdAQRDhoSLydhqJiBYPSzAOImPVSW8y_LIQC9cTc9p0Z-n5oYqqJ-d7CP0AKruirTLGfsFCjXBVzkbFqxT777rTOK1NSPxTp2AlIbbZx-Cx0mfkCvVIuDQh-yJiiRAcBUHG--OQkuPMa8SzBC1exTPTf3DuaGd3CWUp4tzX6W57Fxps7ohDkZeMaiGKwg5ASH4o-H2GTXPw9gZAU6CVWJQWt-HOnL_Gjd15HijOZ958gQ.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)

Node.JS [ru] | Серверный JavaScript
20 Sept, 06:37
🤣 Типичный ИИ💥 xCode Journal![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/QghtcKJ7gt_kGkDiUnr3y_9AS0a78luozZHsFYPbQCoapzydxKnaKAgBuJkJBPnBTsj7Pw5E3ceXJc_3CUXuPv1bjjcTLgLdQhkaYNK1WI9cwvixrLFHsLDwfCCdow0vNPLyhzOqMgpJHsAVuj_05MBg2r9wSmq3zUfMJn-8AUZBPDUBrIAHdml74FbnSaYP0K-7jKlcMDcvohCYn1FGS97Ae-ohMR3nAO9CmcSrRa0AktPPxu3F-EVo4yzf3K7U6AybxilZzp4KoMuqg6M2G7wtBrgxQnNXUiWi_CIIsZHJrEBu1BsaLLuppfkMMzUdHN48lz1d_DOIBUUkEhEz0w.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)

Node.JS [ru] | Серверный JavaScript
19 Sept, 18:07
Жмёшь кнопку — в ответ тишина. Как не профукать действие юзера и не наплодить дублейЮзер тапнул, связь отвалилась — и браузер сидит, не в курсе, доехал запрос до сервера или нет. Шлёшь повтор — получаешь дубль. Не шлёшь — действие улетает в никуда.В материале разбирают схему, которая закрывает оба этих случая: API без toggle, ключ идемпотентности в PostgreSQL, очередь в IndexedDB, Service Worker и проверка офлайна в Playwright. Автор сразу предупреждает: это не полноценный offline-first, а только страховка действий в момент, когда связь рвётся.Разобраться с повторами👉 Node.JS [ru]![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/pPEzyI6z2gFzs1GX_kv7uqkG2cwuqB7OnfKyrg-BQb1II0PLd0qKxm0dCuEdOYihwXlAEQCR_WtscYB7GSF397nUPhYd-izfgQFzV18KL2TysK7ypFZ2VjdHtNF8bUP-TDcdLq1_kfHT5aPPHrPI4Gt0CjggsGA10wPDoZY5GUCBXVSrfGrnRpnm8zypJBcdk2x4a5MYzJpdCANzN8VqO3N5aREz5GGDlSert3RF-Ii7VYXGmErcvnmurbbv6gKNk9b12sOGerlwsAachxGEwqGL3MdUiEwccdi6Ggpkw80I_vM-8MH6OOSVy1zcuBgzjYXX4ua19QK81TlTX9P01w.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)

Node.JS [ru] | Серверный JavaScript
19 Sept, 13:07
Зачем 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]![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/OZRRABLUkcHGsHVB2YQju1bKYn64l_SAkVcfMYn0Fsf8Le9XnnjvcvCk6RchsMbCm6K-JZ0IAVNsyyjFGivXD5L-OnPvPzFz_3bpgfQMq5quOxzWfZXm6ITvFSVhtnWbC39jZbJD3PRDv2hjQyf_l7TwSE7yFPEqdcyVTtHYexRFcuSChYfJwdenpQy5o7fugVifvF1DPDBWY7-gDu-OwP2IXH5xc8PzBWPAslAvBAmOPVH1AV368YOUHr0zBsP-mAmrNrVEppcIEdKS7Dbd21Xem3xGEZDgYQBmMkuilAzvU3srOsTWEA43nRGoOVbM5jWlrLuheXofCM1k58Qxcg.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)

Node.JS [ru] | Серверный JavaScript
18 Sept, 17:07
Polymorpheus: та самая недостающая деталь в пазле AngularAngular — фреймворк хороший. И заботливый: кучу всего там уже продумали за тебя. А если внезапно приспичило что-то нестандартное — текущее поведение обычно спокойно переопределяется или докручивается.Вот про один такой кейс автор и рассказывает. И заодно показывает инструмент, который слепил много лет назад и с тех пор считает обязательной базой для Angular. Это маленькая библиотека Polymorpheus — в Taiga UI она попадается буквально везде, где надо вывести динамический контент.Читать далее👉 Node.JS [ru]![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/BjTtxNZtJLuuqgvqjyZpz6vm0hylP0E5w5JsdLXOikO3YfVzu5XnGt39kzzXlrs1zgAnUem9Hc_o3d6xF_N2CwIRmoa2TfC-rCHT4KYb91iMhQnr87pAxqBubBrtllycaDYRfgJlc1n5xinxf2Zt7WUc2SdbgcQnHivArUyzqciIL0GJE5n-G0zcHQaMdDT5XblJLa-rN7HvtBx-O9QZ8VCbhqpqxLksixL8jz7RTKabeVI914hqG1G9kFTAYPWk1iKri_OOUbheqzjtPKSr6Zh4YxYq-NnZGsvn90xDf4bWVYJB55qvu2aXySstllMVRgAMEENAChN4cfI0uFRwFw.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)

Node.JS [ru] | Серверный JavaScript
18 Sept, 13:07
Тестим смарт-контракты на Hardhat 3: node:test, viem и ни одного mochaHardhat 3 слил mocha вместе с chai. Теперь тесты крутит встроенный node:test, а с контрактом болтает viem.В гайдах по миграции тебе разжуют конфиги до последней запятой, а вот про то, как теперь вообще писать сами тесты — почти ни слова. Автор как раз пилит учебный проект на этом стэке и собрал рецепт целиком: скелет теста, ассерты на ивенты и кастомные ошибки, сверка балансов с поправкой на газ и пять грабель, на которые он успел наступить лично.Читать далее👉 Node.JS [ru]![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/THf5AbjrAzLaIWfDJui_Swwf9dok846t25dAo4gTDllxtPjIUppxfkymNZQrbgIsmM5F7tHWvvUvVoQ6jybKoU08HyF9X_s8aBLAoRotL7IJbrutwKBNg_JGgjhMFBc6d_sqW_Fo13XGUdx4Kgdz8u1HtkNOxNuPcKF1Xd9XdW8tvGCjtXLilNS8TPkD0DHqGfs_gv2Y-IYi4wBbh5VLSV0UveU2OBZBXBj-A58q6bbM3SS2QMJW3CaYHTY4QJsZvSFVl7di8wW0MGSIzYYB5ca-lGYiVd8LBVo3wWQ7HwhPVX4Ws2izDvi8Zuev6SZj2WNFgS1otn1sauqzaHcyCw.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)

Node.JS [ru] | Серверный JavaScript
18 Sept, 09:07
Марио, только про джуна: платформер на 40 КБ и бот, что принимает уровниЗа этим стоит фронтендер. По вечерам он ковыряет Workaem — агрегатор вакансий в IT. А рядом захотелось чего-то совсем несерьёзного, и за выходные вылезла аркада в стиле Марио, но про карьеру в айти — «Путь джуна». Грибы тут заменили офферами, черепах — легаси, а в замках вместо дракона тебя ждёт собеседование: от тестового до финального.Дальше накинул ещё пару вечеров, и по ходу вылезло столько всего, чего фронтендер раньше в руках не держал: физика с фиксированным шагом, процедурная генерация уровней, синтез звука, античит на таблицу рекордов и баги, которые глазами вообще не выцепить. Claude пихался в процесс активно, но когда уровень внезапно не проходится или таблица рекордов нагло врёт — разбирался своими руками, в основном по скриншотам и логам. Без файлов графики игра тянет 40 КБ, а каждый уровень перед![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/QrzB66K0sPHdA-3qfjfers2rU4B5WaGSuf3qL619UkFfJfk-YrBqmUrqzaw4LKtpEGkoazV0oY7gXTDmFqF3tXbdQ1TVBgsI0V2ajx-Zsth-D6n5FTvTLJMY6x292doyzau1iARBGHg85-D4VMuUakfI5D_llHziE6br74QF_EymtHI-XGIptG2j1Apa3Z4x4sBnBBNBS1HJtuOwhWswMGDHd-JeygbH-E54GmXtO6G1kzz42ECC2310OhJrrRcJ6zuAyxsuy2mOmT5uJxBMnCPtCjFa7zqEw-5e0tDfLYZIoXi09EwSu1zi9SRKRXNJCKe7A5AGMkCWnb_HJFHPPg.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)

Node.JS [ru] | Серверный JavaScript
18 Sept, 06:37
🤣 Просто не самый надёжный протокол передачи данных💥 xCode Journal![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/UupthfnM7dCBLn54pd5AiBwF-SiHjesKj0W9RB-LpVhDiyEj5_Y5aLIFaF4VJf0SNr3aRcy168m6CMGH6AGbzht1jdvBz_ERmBv1TQqxFPowEP9c1V8nxDUT0RWs7fI5-SPBFeu7x86Pw4QXt1Oh7lTBnoaD7KuqpMR3PpeHO5blpVxL7FPrMAsCgmE96CjYx3Z40mWFsKptZ8O00uN9BgB4xhwcRXKcn8gq9WIELVFryNArXYiiPW-wLb-kyVUyyjipK9NVKHTveIB6SrdN6zL3zMWMHhczDwHh9T9Waih6snaT6dtW5kOnrgy54rvQ0AdckVSNQSveKKgdSyBUhg.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)

Node.JS [ru] | Серверный JavaScript
17 Sept, 17:07
«Обратная змейка», часть 2: разбор фидбека, правка багов и свежий боссКогда выкатывал первую часть, честно ждал десяток лайков и гробовую тишину в комментах. Кому вообще сдалась змейка, склеенная за пару вечеров? Ага, размечтался. Комментов прилетело прилично, и половина — не дежурное «мило, годно», а нормальный такой разбор: одному баг попался, второму — спавн змей аккурат под носом у игрока, а третий вообще начал кидать сравнения — то Pac-Man, то Asteroids.Сам автор не отпирается: технически игра работала. Но кое-где — не на 100% от своей же задумки, а это, согласись, не то же самое, что «работает хорошо». Так что он решил пройтись по всему списку, а не отделаться сердечком в ответ.Читать далее👉 Node.JS [ru]![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/EcQUFYwJbAd1QAuPT485W0ywyzQgkAykqbbGZ1oHulHnZvvqz-osMnjbAMGqMvcCLRZvT2BESCbTjjVT3tvWRHe04OQFESGaxd7sTy_rDPdgPl8O0Snm8UQ7-bgXnU1nx1Cznl2t1psPAWFHVgXRt5SEmPEavc_RJWe_Rohq0MesVsNM0AbdWxJs41gxQ9C29VIhog-gN25f24zw1QAFTnypQK_oaeFPGmd0k8wgZCE060-CPkdWhDgiVcQj1u_LgWemmelmCbDVh0vgEjOuYNXMulx7Z2sITQjIK-rmEqP1KUcG6Q0Fu57AKxjdNm3IOo-JifgLCNvNP3gHiFnq0A.jpg)
![Image from a post by Node.JS [ru] | Серверный JavaScript](https://cdn4.telesco.pe/file/tnrfKwGmJeW_HmNpJVe0aQoi11KSo2ZvFgK8swiK7Aa0OXWHw65Kcgj16GUuyRRWplyLHJaTQX1EZQXr_qH2ZwPr-VO971Oh38F6p5Lz6S4f12x2Rx7vNPt8jmCGuHqrfETL370X5oQ7urckgB9qgpwBn1vnR7eQb5wrj_B8rLrLZL10J1lqbypSM236oCdAcB0fS_5f7pu8OXorUjDK22S9v76rvWyZs0mMxpOvii_QBK7B9v9yhlA5QiLPPFFAT-YsA3Y_7NYsD3secJTWiG60KwHmXGat7JXsQorwhkoLK3VKjLB6lsM_QVpGxyKcZtusWE6yaH_oy4jnluE4UQ.jpg)
Related Channels
Other channels in the same section of the catalogue.
![Node.JS [ru] | Серверный JavaScript channel avatar](/userpics/we_use_js.jpg)