Category : javascript

javascript
LOTIS: Новая парадигма WEB-разработки для бизнес-приложений

После того как моя статья о фреймворке LOTIS вызвала интерес, я решил подробнее раскрыть его архитектуру и привести примеры кода. Напоминаю ссылку на репозиторий фреймворка: https://github.com/O-Planet/LOTISLOTIS решает одну фундаментальную проблему: разделение логики на клиент и сервер мешает разработке бизнес-приложений. Вместо того чтобы думать о бизнес-логике, разработчики тратят время на:Синхронизацию данных между клиентом и сервером Управление состоянием Написание идентичной логики на дву…

  • вторник, 21 апреля 2026 г. в 00:00:09
javascript
Фронтенд — это REST-сервер

Привет. Я фронтенд-разработчик. По мнению тех, кто, по мнению некоторых, перекладывает джейсончики туда-сюда, я крашу кнопочки. Но сам я себя идентифицирую иначе: я тоже перекладываю джейсончики, и у меня всё точно так же, как у них. Даже архитектура. У меня тоже есть контроллеры, сервисы и хранилища, и я также обрабатываю запросы пользователей. Даже больше, я делаю HATEOAS, «тру» RESTful, если хотите. Давайте расскажу, как я к этому пришёл.Как я стал бэкендером во фронтендеКогда-то давно я тол…

  • вторник, 21 апреля 2026 г. в 00:00:07
javascript
Готовимся к отключению. Эффективные форматы для упаковки и раздачи HTML-страниц

В 2026 году растёт риск перебоев и ограничений в работе интернета в РФ. В таких условиях имеет смысл заранее продумать, как сохранить привычное окружение при нестабильном доступе к сети.Помимо личных файлов, кино и музыки, хочется сохранить архив сайтов и веб-страниц для чтения в будущем — на месяцы или даже годы вперёд. Но в каком формате это лучше делать?ПК для Апокалипсиса«ПК для Апокалипсиса» — офлайновая система, которая хранит полный набор необходимой информации для жизни без интернета. Э…

  • вторник, 21 апреля 2026 г. в 00:00:06
javascript
Один движок на два рантайма: как мой сайт на Next.js делит формулы с Flutter-приложением

Прошлой зимой я писал тут про «Мастерок» — строительный калькулятор на Flutter для RuStore. Приложение поехало в прод, набрало 4.9 звезды, и в какой-то момент пришло осознание: аудитория смартфонных приложений — это аудитория смартфонных приложений. А человек, который в обед нагуглил «сколько мешков ротбанда на 20 квадратов», в магазин приложений не полезет. Он хочет страницу в браузере. Желательно без куки-баннера на полэкрана, без интерфейса из 2012-го и без того, чтобы перед ответом на вопро…

  • вторник, 21 апреля 2026 г. в 00:00:04
javascript
Почему JS/TS — не функциональный язык (и почему это важно понимать)

Мотивацией для написания этого поста стали два года собеседований JS/TS-инженеров. Я интересуюсь языками и функциональным программированием, поэтому всегда «разбавлял» технические вопросы разговором о парадигмах. И заметил любопытную асимметрию.Об ООП кандидаты рассуждали уверенно — но в основном на концептуальном уровне, не вдаваясь в то, как именно ООП реализовано в JavaScript. С FP картина была другой: уверенности меньше, зато критика — конкретная и повторяющаяся: «иммутабельность дорогая по…

  • понедельник, 20 апреля 2026 г. в 00:00:10
javascript
108 окон: как команда без разработчиков и бюджета построила Интерактивный дом-таймлайн про ТВ 90-х

Привет, Хабр. Это история о том, как мы собрались и по вечерам за полгода создали интерактивный веб-проект про российское телевидение 90-х и 00-х.Сайт называется Окна.ТВ ссылка в конце. Заходите, скролльте и вспомните время, когда телевизор был нашим главным развлечением.Главный экран сайта — вид дома с окнами, таймлайн справа, десктоп Стек в двух словах: ванильный JS, собственная CMS, собственный видеоплеер, деплой в Kubernetes. По дороге познакомился с S3, OOM killer, mask-border и Safari — …

  • понедельник, 20 апреля 2026 г. в 00:00:08
javascript
Symbiote.js: суперспособности для веб-компонентов

Смысл создания и использования новых библиотек и фреймворков в том, чтобы решить задачи, которые не были решены ранее. Либо, в том, чтобы решить какую-либо задачу более эффективно, чем это уже было сделано кем-то.Сегодня мы начнем разговор о задачах, которые можно решать с помощью Symbiote.js, и делать это гораздо проще и элегантнее, чем с другими фреймворками.Symbiote.js - это легкая (~6 кб brotli), но очень мощная библиотека, основанная на веб-компонентах. Ее основным отличием от конкурентов …

  • понедельник, 20 апреля 2026 г. в 00:00:07
javascript
Год с React Hook Form и Zod: меньше кода, но не без нюансов

Всем привет! Думаю, что не ошибусь если скажу, что почти каждому фронтендеру приходится заниматься разработкой сложных форм. Те, кто уже имеют такой опыт знают, что работа с формами доставляет боль и страдания. Необходимо держать в голове все правила валидации и заполнения форм, связи между зависимыми полями, нужно как-то связывать данные формы с UI, при этом избегая лишних ререндеров.На большом проекте мы писали формы через MobX + MVC, думаю, что это не самый плохой подход для написания форм, …

  • понедельник, 20 апреля 2026 г. в 00:00:05
javascript
Лицензии уходят, музыка остаётся: как я превратил тему для музыкального клиента в runtime-аддон с б…

Около года назад мне захотелось чуть большего от десктопного музыкального клиента, который и так все знают, чем просто “работает и ладно”. Уже тогда в нём ощущались ограничения, которые сегодня стали только заметнее. Но началось всё, конечно же, с интерфейса: он казался слишком стерильным, а возможностей кастомизации почти не было. Поиски быстро привели меня не к официальным настройкам, а в небольшое сообщество вокруг PulseSync — ещё молодого проекта, который позволял модифицировать клиент чере…

  • понедельник, 20 апреля 2026 г. в 00:00:04