Обновить
469.94

Веб-разработка *

Делаем веб лучше

Сначала показывать
Порог рейтинга
Уровень сложности

Как мы пережили несколько мажорных обновлений Angular в B2B-платформе

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели5K

Это интервью — разбор реального опыта миграции фронтенда Compo B2B Platform с Angular 13 на актуальные версии фреймворка (в итоге — Angular 19). Команда Compo Soft прошла путь через несколько мажорных апдейтов, замену и переписывание зависимостей, рефакторинг архитектуры и внедрение новых возможностей Angular — от Standalone Components до Vite и non‑destructive hydration.

Читать далее

Новости

Идемпотентность: не просто теория, а необходимость для надёжных систем

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.1K

Представьте, что вы нажимаете кнопку «Отправить заказ» в интернет-магазине. Если страница зависла, вы нажмёте её ещё раз. Идемпотентная система обработает повторный запрос так, что вы не получите два одинаковых заказа и с вашей карты не спишутся деньги дважды. Неидемпотентная — создаст два заказа и спишет средства дважды.

Читать далее

Мой справочник по Feature-Sliced Design

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели4.7K

Всем привет, меня зовут Сергей Сибара, я фронтенд-разработчик в ИТ-холдинге Т1. Так как при использовании Feature-Sliced Design (FSD) возникает много вопросов и разные люди понимают её по-разному, я решил написать статью-справочник, раскрывающий некоторые подробности методологии. В этой статье я продолжаю использовать те же принципы и часть терминологии, что и в предыдущей.

Здесь я, в основном, описываю структурирование по правилам методологии. А в следующей статье, напротив, рассмотрю, как можно улучшить структуру проекта, намеренно нарушая правила FSD. Заранее предупрежу, что правила методологии носят рекомендательный, а не обязательный характер. Их назначение — задать направление структурирования, а дальше принимать решения нужно в зависимости от конкретного проекта и ситуации в нём. Строгое же следование правилам может привести к бо̒льшим проблем, чем их нарушение.

Если заметите ошибки — пишите в комментариях!

Читать далее

Как в звонках автоматически находить первые признаки выгорания операторов кол-центра

Время на прочтение10 мин
Охват и читатели3.7K

Привет, Хабр!

Выгорание операторов — распространенная проблема в кол-центрах. По разным оценкам, текучесть персонала здесь достигает 40–45%, а средний срок работы составляет 8–12 месяцев. Это приводит к дополнительным расходам на обучение, росту нагрузки на команду и снижению качества сервиса. При этом заметные изменения в поведении сотрудников обычно фиксируются слишком поздно — когда проблема уже стала системной.

Я Катя Саяпина, менеджер продукта МТС Exolve. В этом материале разберу способ раннего обнаружения таких изменений. Он опирается на статистические отклонения в поведении оператора и дополняет прямое общение с сотрудниками и сбор обратной связи в команде. Мы создадим на Python сервис, который объединит Telegram-бота, API МТС Exolve и LLM, развернутую на платформе MWS GPT.

Читать далее

Боль в спине на удалёнке: сидеть нельзя подвигаться

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели6K

Сегодня многие живут в формате «сидячей работы» — неважно, офис это или диван дома. Часы за ноутбуком проходят незаметно, а тело в это время терпеливо копит напряжение и усталость.

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

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

Читать далее

Как мы построили рекламную платформу с нуля

Время на прочтение6 мин
Охват и читатели7.9K

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

Читать далее

Разработчики всё ещё путают JWT, JWKS, OAuth2 и OpenID Connect — разбираем на примерах. Часть 1

Уровень сложностиПростой
Время на прочтение27 мин
Охват и читатели11K

JWT, SSO, OAuth, OpenID Connect — названия знакомые каждому разработчику. Но стоит спросить: «Зачем в продакшене нужен JWKS?» или «Чем отличается OAuth2 от OpenID Connect?» — уверенность сразу исчезает.

В этой статье мы разберём как устроен JWT и его подпись, зачем нужны access и refresh токены, что такое JWKS и в чём отличие OAuth от OpenID Connect.

Вместо скучных стандартов и спецификаций протоколов в статье будет один наглядный образ на примере отелей и пропусков. Это позволит не только запомнить, но и прочувствовать на реальных примерах, избавиться от хаоса и путаницы в голове, когда речь заходит об аутентификации и авторизации. Цель статьи — не дать «рецепт внедрения», а дать возможность понять, как это работает внутри и «пощупать» эти темы на Go

Читать далее

Фиксим залипающий hover на мобильных устройствах

Время на прочтение4 мин
Охват и читатели6.2K

Залипающий hover на мобильных устройствах – частый баг. Раньше мы решали это просто плагином PostCSS Hover Media Feature, он оборачивает все псевдоклассы :hover в медиазапрос @media (hover: hover) {}. Так мы проверяли поддержку hover и отключали его на мобилках. Но во время тестирования одного проекта оказалось, что на некоторых устройствах hover продолжает залипать.

Читать далее

Roadmap.sh: дорожные карты для изучения IT, 346k звёзд на GitHub

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели11K

В 2013-м я получил свою первую вакансию джуна. Требования: PHP, MySQL, jQuery. Всё. Я открыл tutorial, за выходные накодил todo-лист, через месяц уже чинил баги в проде.

Вчера смотрел вакансию для джуна. Требования занимали два экрана. Node.js ИЛИ Python ИЛИ Go. React ИЛИ Vue ИЛИ Angular. PostgreSQL + Redis + MongoDB. Docker обязательно. Kubernetes — плюсом. GraphQL знание приветствуется. Плюс микросервисы, CI/CD, облака...

Я посчитал: чтобы формально соответствовать этой вакансии, нужно изучить минимум 15 технологий. На поверхностное изучение каждой — месяц. Итого больше года непрерывной учёбы. Для позиции джуна.

А что сейчас?

Сейчас — это Node.js, Deno, Bun для JavaScript-бэкенда. Go, Rust, Elixir для хайлоад. Python с FastAPI, Django, Flask. Kotlin, Java, Scala для enterprise. Плюс Ruby, PHP (еще жив), C#/.NET... И это только языки и рантаймы. А еще базы: PostgreSQL, MySQL, MongoDB, Redis, Cassandra, ElasticSearch. Очереди: RabbitMQ, Kafka, NATS. Контейнеризация: Docker, Kubernetes, Helm. CI/CD: GitLab, Jenkins, GitHub Actions, CircleCI. Облака: AWS, GCP, Azure.

Бедные джуны. Хотя нет — бедные мы все. Даже опытные разрабы теряются в этом океане, когда делают шаг в сторону. Зоопарк технологий растёт экспоненциально. И вопрос "с чего начать?" и "куда двигаться?" превращается в настоящий паралич выбора.

Читать далее

Коллекция полезных CSS фишек, которые вы редко используете

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели10K

Привет, Хабр!

В мире фронтенда активно всё меняется. Появляются одни инструменты, но только их выучишь — они устаревают, и нужно уже учить новые. Новые методы и API в JavaScript. Даже в HTML появляется что-то новое. И, конечно, CSS не отстаёт.

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

Давайте посмотрим, что я вам подготовил.

Читать далее

Webflow → Next.js без фронтендеров: как мы перенесли 500+ страниц сайта через Cursor

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели7.4K

Всем привет, я сооснователь мессенджера Пачка и отвечаю, в том числе, за маркетинговую инфраструктуру. 

Нам нужно было оперативно увезти наш сайт с Webflow: 500+ страниц, блог и база знаний. При этом возвращать фронтенд-разработку в режим постоянной поддержки сайта мы не хотели. Поэтому рассматривали конструкторы и CMS, но быстро поняли, что это будет работа в минус. Все усилия на переезд лишь вернули бы сайт в рабочее состояние, не дав новых возможностей.

В итоге мы решили вести разработку и поддержку сайта в Cursor. То есть переписать его на NextJS с помощью AI агентов. Такая связка дала понятную модель страниц, быструю доставку статики и ISR для контента, а также возможность отказаться от отдельной CMS за счёт MDX.

В спокойном режиме за два месяца удалось полностью переписать сайт и запустить его в прод. Ниже делимся практическим опытом этого переезда.

Читать далее

Как оптимизировать код WebAssembly при помощи встраивания функций и деоптимизации

Время на прочтение17 мин
Охват и читатели6.2K

В этом посте будут объяснены две стратегии оптимизации WebAssembly, которые не так давно были реализованы в движке V8 и вошли в версию браузера Google Chrome M137. Речь пойдёт о спекулятивном встраивании call_indirect inlining и о поддержке деоптимизации в WebAssembly. В сочетании два этих приёма помогают генерировать более качественный машинный код, так как основаны на допущениях, которые строятся, исходя из обратной связи, поступающей от среды исполнения. Благодаря этому, WebAssembly выполняется быстрее, особенно это касается программ WasmGC. Например, проверив эти приёмы на наборе микробенчмарков, написанных на Dart, видим, что комбинация двух оптимизаций даёт ускорение в среднем более чем на 50%. В более крупных и реалистичных приложениях и на тех бенчмарках, которые рассмотрены ниже, достигается ускорение между 1% и 8%. Деоптимизации — также очень важная составляющая для дальнейшей оптимизации в будущем.

Читать далее

Client Hints: разбор технологии, которая заменит User-Agent

Время на прочтение6 мин
Охват и читатели6.4K

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

Раньше для этого можно было использовать только строку User‑Agent, которую браузер отправляет автоматически, но её избыточность и сложность парсинга стали сдерживать развитие веба. Client Hints предлагает другой подход: вместо того чтобы сразу раскрывать всю информацию, браузер передаёт только те данные, которые действительно нужны сайту.

На связи Степан из команды Яндекс Браузера. Сегодня поговорим о том, как мы переходим от устаревшего User‑Agent к современной технологии Client Hints. В статье разберём, почему User‑Agent стал проблемой, как работают хинты под капотом и какие перспективы у перехода на новую технологию.

Читать далее

Ближайшие события

35 удачных UX-решений для интернет-магазинов электроники

Время на прочтение6 мин
Охват и читатели8.7K

Всем привет! Меня зовут Саша, и последние 12 лет моя жизнь — это дизайн. Сегодня я руковожу дизайн-командой в KISLOROD, а в прошлом — помогал крупным брендам и миллионным сервисам обрести их уникальный голос и форму.

В этой статье мы проанализировали 11 интернет-магазинов электроники и техники, которые выделяются продуманным пользовательским опытом. Разобрали, какие приемы дизайна, навигации и взаимодействия с пользователем делают их сайты особенно комфортными и понятными.

Эта подборка поможет увидеть актуальные UX-тренды и найти вдохновение для развития собственного e-commerce-проекта.

Читать далее

Почему учителя бегут из школ, а дети не хотят учиться — и как я это исправляю

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели99K

Всем привет! Меня зовут Максим Иванков, мне 30 лет, у меня трое детей, и вот уже 9 лет я развиваю школы робототехники и программирования по всей России. Старший сын только пошёл в первый класс, и я вижу, как школа в провинции рушится на глазах: учителя бегут из-за копеечных ставок, бюрократии и беспомощности перед хулиганами, физику и информатику ведут кто попало, а дети теряют интерес к учёбе. За годы экспериментов я создал формат, где дети идут на занятия с радостью и учатся годами. Нет лекций — только самообучение в своём темпе: собирай роботов (колонка, сигнализация, микроконтроллеры), программируй Python прямо в Minecraft.

Читать далее

Что скрывается за адвент-календарем: бизнес-логика праздничных окошек

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели4.5K

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

Недавно я увидела адвент на сайте «Читай-города» и вспомнила один из самых криповых случаев: мы делали сайт на Drupal, и заказчик попросил добавить адвент-календарь к Новому году. Сказал, что нужно, чтобы по клику на окошко пользователь получал код. И достаточно 20 разных кодов, чтобы каждый день коды менялись.

Казалось сначала, что код будет работать как пароль, открывая доступ к определённому контенту. Но по ходу реализации мы выяснили, что коды должны быть разные для всех пользователей и привязаны к сложному расчёту скидок. Мы столько раз переделывали этот адвент, что в итоге так его и не запустили…

Корень провала был не в Drupal и не в сложности кода. А в том, что изначальная просьба «сделать календарь» скрывала за собой неочевидную бизнес-систему — персонализированную систему купонов. Мы как разработчики копали вглубь интерфейса, а надо было сначала понять механику.

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

Читать далее

Пожалуйста, почините найм

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели66K

Я в IT довольно давно, как в том меме — мне этот мир абсолютно понятен. Но сейчас происходит какая‑то ерунда, учитывая разные обстоятельства в мире, считаю так делать крайне тупо. Не то, что бы я хотел пожаловаться, и увольнения, «оптимизации», «трансформации» были всегда. Это все бизнес и к нему нечего предъявить. Разные ситуевины бывают. Но я бы хотел как‑то вставить свое мнение по теме.

Годами, если вы хотите попасть в какую‑то крутую компанию, вам нужно было и до сих пор это «нормальная» практика устраивать десятки этапов собеседований. Без проблем я принимаю эту игру. Нам же важно найти того самого рок звезду, который будет решать поставленные перед ним задачи. Типо как в магазине выбираем принтер, правда сдать его обратно через 3 месяца нельзя. Листик с него вышел — значит все, поиспользовал, живи с ним дальше.

Читать далее

Токеномика как инструмент иллюзий: пыль в глаза или искусство продавать воздух?

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели7.7K

Почему токеномики — это пыль в глаза. Как криптопроекты создают иллюзию ценности и почему рынок принадлежит не гениям, а властителям медиасреды.

Не секрет, что с появлением первой криптовалюты наши представления о финансах сильно изменились. Биткойн перевернул всё с ног на голову, заставив людей по-новому взглянуть на деньги, доверие и саму идею ценности. Но не меньший шум поднял и проект Виталика Бутерина - Ethereum, который появился в след за Биткойном. Он дал миру первую публичную блокчейн-платформу, на которой любой желающий мог выпускать свои крипто-токены. Так родился целый пласт экономики нового типа.

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

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

Читать далее

11 полезных фичей Chrome DevTools часть 2

Время на прочтение5 мин
Охват и читатели11K

Всем привет!

Пока из каждого утюга рассказывают о различных ИИ-инструментах, агентах и прочих радостях упрощающих жизнь, я хочу рассказать о 11 незаслуженно потерянных фичах в недрах Chrome Devtools. Про фишки ИИ в DevTools рассказывать не вижу смысла, так как в нашем регионе они пока не работают.

Кстати, первая часть тут - тык.

Погнали!

Погнали!

Тестирование Frontend

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели7.8K

В данной статье рассматриваются основные виды тестирования, включая юнит-тестирование, интеграционное тестирование и энд-ту-энд (E2E) тестирование, а также выявлены их преимущества, недостатки и ключевые особенности. Также уделяется внимание современным инструментам для разных видов тестирования, например, Jest, Cypress и Testing Library, которые предоставляют разработчикам мощные возможности для написания и выполнения тестов. Исследованы следующие подходы к тестированию: Test-Driven Development, Page Object и Continuous Integration. Выделены ключевые метрики, по которым можно определить эффективность тестирования.

Читать далее
1
23 ...

Вклад авторов