Category : javascript

javascript
DI-контейнер на чистом JavaScript без TypeScript и reflect-metadata

TL;DRПосмотреть код целиком можно тут: https://github.com/kubarskii/simple-diСтатья скорее рассчитана на начинающих разработчиков, но для ее понимания потребуется некоторое время и базовое представление об архитектуре приложений и паттернах. Перед чтением рекомендую познакомиться с принципами DDD и SOLID, особенно с буквой (D). Я уже давно пытаюсь придумать, как можно сделать достойный DI-контейнер на ванильном JavaScript. Несколько раз я уже подходил к этой задаче, пробовал разные варианты, …

  • суббота, 18 июля 2026 г. в 00:00:06
javascript
Зачем учить бинарный поиск, если платят за покраску кнопок

Антон ТришинFrontend-разработчик в ДомкликПривет, Хабр!Среди разработчиков давно не утихает спор: действительно ли алгоритмы нужны в повседневной разработке или это лишь сухая теория для прохождения собеседований? Вот и я решил вступить в этот спор.Когда я начинал карьеру во фронтенд-разработке, то постоянно задавался вопросами: «Зачем на интервью просят обходить граф, если на работе я просто правлю CSS-отступы?» или «Зачем знать сложность O(N), если вёрстка всё равно ломается в Safari?» С разв…

  • пятница, 17 июля 2026 г. в 00:00:07
javascript
Простой способ запускать доверенный пользовательский JavaScript в Node.js

Недавно я опубликовал большую обзорную статью о том, как несколько лет развиваю свой пет-проект, который постепенно превратился в собственную Function-as-a-Service платформу. Она позволяет принимать пользовательский JavaScript, Python или Go, запускать его в изолированном окружении и управлять такими функциями почти как в небольшом облаке. Подробнее об истории проекта и его архитектуре можно прочитать в предыдущей статье тут.В этот раз я хочу разобрать более узкую тему и рассказать, с чего вооб…

  • четверг, 16 июля 2026 г. в 00:00:10
javascript
Просто дайте мне ввести цифры

Цифровая идентификация и её значение для веба в последние годы стали темой горячих обсуждений. Они привнесли с собой множество спорных моментов: законы о проверке возраста и их влияние на онлайн-анонимность; Википедия потенциально будет вынуждена верифицировать в Великобритании личность пользователей; привязка к официальным операционным системам iOS и Android стала обязательным форм-фактором для кошельков цифровой идентификации; кроме того, стоит упомянуть ситуацию, когда американские цифровые …

  • четверг, 16 июля 2026 г. в 00:00:09
javascript
Point0 — простой, как tRPC, полноценный фулстек-фреймворк

Хочу сравнить фреймворк Point0 и библиотеку tRPC. Делаю это, потому что квери и мутации в Point0 очень похожи по DX на tRPC, но более удобны ввиду того, что всё же Point0 это фреймворк и он может обладать возможностями, которыми библиотека не может:Объявлять квери вместе с серверным кодом прямо в клиентских файлах, или наоборотАвтоматически гидрировать и дегидрировать квери клиент при включении SSRВ мутациях отправлять файлы автоматически превращая данные в FormData и обратноИметь стабильные ин…

  • четверг, 16 июля 2026 г. в 00:00:07
javascript
Автоматизация с использованием сервисов Google или что попробовать вечером

Пример созданного проекта (бэкграунд‑photo by Adam Jícha)Для кого эта статьяДля всех, кто хочет попробовать сразу несколько сервисов гугла;Для всех, кто хочет заняться автоматизацией любого процесса;Для всех, кто хочет создать пет‑проект с различными сервисами;Для всех любопытных;Для любителей халявы, так как в примере используются только бесплатные инструменты/сервисы (на июль 2026г).___________________________________________________________________________________Что будет в примереМы создад…

  • четверг, 16 июля 2026 г. в 00:00:06
javascript
pkg-cache — простой локальный кеш пакетов

Зачем все это или «А что, так можно было?»Использую node.js и php в разработке. А это означает, что постоянно приходится скачивать пакеты (npm, composer). И речь не только об объеме трафика, который каждый раз нужно гонять по сети, но и времени ожидания загрузки, синхронизации пакетов между рабочей станцией и ноутбуком. Ещё о том, что делать, когда интернет неожиданно заканчивается или оказываешься там, где его совсем нет или скорость оставляет желать лучшего.Давно искал решение, умеющее локаль…

  • четверг, 16 июля 2026 г. в 00:00:05
javascript
Redux никогда не работал в React

потому что нельзя просто взять redux и начать использовать в React. Необходима некая «react-redux» библиотека. А в чём тогда смысл талдычить, что «Redux works with any UI layer»?На фронт-собесах часто спрашивают: «Как хранить состояние в крупных react-проектах?» Отвечают заученное: можно сделать редуктор в контексте через useContext и useReducer.Приходишь домой, думаешь: «Сейчас подключу разок, чисто пройти путь, подучиться». Ставишь redux в свой проект, грамотно всё подключаешь: actions, reduc…

  • среда, 15 июля 2026 г. в 00:00:18
javascript
WebAssembly (WASM) — не серебряная пуля

WebAssembly появился для браузерных задач как способ исполнять тяжелый код быстрее, чем это делает JavaScript. Но за последние годы он начал выходить далеко (иногда буквально далеко) за пределы вкладки браузера: серверы, edge-вычисления, плагины, песочницы. Появились рантаймы Wasmtime, WasmEdge, Wasmer, которые исполняют WASM-модули\компоненты прямо на ОС. Звучит красиво - собрал один бинарь, а запускаешь где угодно, да еще и в максимальной изоляции.Но есть интересное наблюдение. Существуют про…

  • среда, 15 июля 2026 г. в 00:00:16