Привет, Хабр! Меня зовут Эрнест Гилязов, я тимлид группы разработки интерфейсов Рунити. В этой статье расскажу, как мы переносим на новый стек проект Рег.ру, кодовой базе которого исполняется 20 лет, и почему в итоге Nuxt-приложение само раздает шапку и футер в легаси-монолит через обычный JSON-эндпоинт.Навигация по тексту:Точка отсчета: монолит на Perl и Template ToolkitПервый сигнал к переезду: стек как узкое горлышкоМиграция без риска: редирект по списку услугЛегаси, которое не мешало: витри…
Недавно я вспомнил стартап, над которым работал в 2024 году. Мы делали что‑то вроде Pokemon GO на свой лад: пользователь должен был ходить по городу и собирать сундучки, из которых можно было получить скидку, промокод или специальное предложение от компании‑партнёра.В какой‑то момент проект свернулся, а я ушёл в вольное плавание. Но из него у меня остался интересный и достаточно уникальный опыт — в ходе разработки пришлось довольно глубоко разобраться в том, как вообще работают карты в браузере…
Привет, Хабр.Я frontend-разработчик и большую часть времени работаю с интерфейсами. В какой-то момент мне стало интересно, можно ли на привычном для меня веб-стеке сделать не демо с вращающимся кубом, а законченную 3D-игру — с загрузкой сцены, управлением, звуком, меню, мобильной версией и публикацией на платформе.Так появилась Taproom 8 — браузерная игра, в которой нужно искать аномалии в мрачном баре.Играть: Taproom 8 в Яндекс ИграхИсходный код: GitHubНиже расскажу не столько о самой игре, ск…
Ситуация, в которой видно сутьДержите открытыми две вкладки. В одной — интернет-банк, куда вы залогинены и где на экране висит ваш баланс. В другой — какой-то сайт, на который вы забрели по ссылке из выдачи, ничего особенного. Теперь вопрос, который на первый взгляд кажется надуманным, а на деле упирается в фундамент всей веб-безопасности: что мешает скрипту со второго сайта взять и прочитать ваш баланс из первого?Разберёмся, что технически ничего не мешает. Обе вкладки живут в одном браузере, …
Бывает так: есть фулстек проект, и в нём всё хорошо. Откуда-то есть сквозные типы (tRPC, генерация из OpenAPI), есть авторизация, есть основной функционал. А потом вы решаете добавить реалтайм: уведомление о новом посте в ленте, чат между пользователями, интерактивную доску. И появляется целый новый слой абстракций, в котором надо заново изобрести всё, что в проекте уже есть, только на новый лад. И дальше поддерживать две разные системы.В своём фреймворке Point0 я добавил четыре новых реалтайм-…
Vue снова меняет способ обновления интерфейса. Во фреймворке появляется Vapor — режим рендеринга, который позволяет точечно менять страницу без виртуального DOM. Для разработчика привычный код при этом почти не меняется. Возникает логичный вопрос: если прежняя модель работала, зачем Vue понадобилось снова переделывать одну из ключевых частей фреймворка?Возможно, ответ в том, что Vue сделал круг в своём развитии. Его первые версии обновляли конкретные части страницы напрямую. Затем фреймворк пер…
Авторизация — это сложно… Хотя казалось бы — самая часто используемая фича в мире. Очень многие процессы завязаны на авторизации и аутентификации. Начиная от ваших любимых соцсетей и заканчивая редакторами кода.Часть 1. Описание проблемыОбычной почты/пароля должно было хватать. А потом у нас появился social login (login via google, yandex, vk, facebook*). А совсем недавно начался тренд на использование 2-х факторной аутентификации, ибо безопасность — ничего не имею против. Я, как и все мы, наде…
Часто разработка начинается с кода. Есть идея - мы открываем IDE, создаём проект и начинаем писать. Не задумываясь о том, что в этот момент мы ещё можем не понимать, какую проблему решаем и что вообще должна делать система.В этой статье разберём путь от пользовательской потребности до реализации: UCD → FR/NFR → KISS → компонентная разработка → код.С чего начинается задача?Представим, заказчик приходит с простой формулировкой:Нам нужен сайт, на котором студенты смогут смотреть расписаниеНа первы…
Привет, Хабр! (И тебе, 1С-ник, который открыл статью только чтобы убедиться, что пока точно не надо изучать новый продукт. И тебе, питонист, который сейчас будет морщиться. И тебе, мобильный разработчик, который уверен, что без Kotlin/Swift нормальное приложение не родится - держи кружку крепче.)Эта статья будет посвящена технологии, на которой можно написать своё мобильное приложение за пару дней. И я вам на примере реализованного мною полноценного проекта логистического приложения покажу, что…