Обновить

Фронтенд

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

Долгий путь к ResizeObserver

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

Привет, Хабр! Меня зовут Анна, я JS-разработчик в компании SimbirSoft и занимаюсь разработкой веб-приложений на React. Эту статью я посвящаю тем, кто занимается разработкой, сталкивается с нестандартными задачами и переживает, что нашу профессию может вскоре заменить искусственный интеллект (ИИ). Я поделюсь решением задачи, связанной с динамическими размерами блока, — проблемой, с которой наверняка может столкнуться в своей работе любой frontend-разработчик.

Почему же я назвала статью именно «Долгий путь к ResizeObserver»?

Возможно, я и слышала раньше про этот API, но когда передо мной встала конкретная задача (описанная ниже), я о нем даже не вспомнила. Мне пришлось пробовать сначала одно решение, потом другое — и лишь в третью очередь я пришла к нужному инструменту. Таков мой путь — из трех шагов. Я человек, поэтому могу честно рассказать, как именно искала решения, в отличие от ИИ. Надеюсь, моя статья поможет вам быстро и эффективно справиться с похожей задачей, а заодно придаст уверенности в собственных силах. Я убеждена: ответы на вопросы находятся не только в нашей голове, но и в окружающем мире, а человек, в отличие от ИИ, способен чувствовать, искать и находить их самым неожиданным для себя образом.

Читать далее

UGFM очередная «теория всего» от LLM или в этом что-то есть?

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

Приветствую вас, друзья. Моя профессия инженер-программист. Как думаю многие из нас, всегда интересовался физикой. И вот, идея которая зародилась десяток лет назад, обрела чёткие формы сейчас, с помощью LLM. Без LLM это было бы невозможно.

Поиск ответов начался с двух наблюдений: крайняя схожесть проявлений оси времени t с осями пространства x y z в классической физике + стоячие волны (солитоны, синусоидальные). LLM помог мне сделать скрипт, который перебирает стабильные конфигурации волн в 4D. Результаты были любопытными: таких стабильных волновых мод было не много - они показали явную связь с известными нам барионами. (Барионы это общее название для всех комбинаций из известных кварков)

Модёль даёт цифры. Есть 5 настраиваемых параметров - натяжение струн u d s c d. (Кварки - это струны в модели) На выходе получаем 20+ значений масс известных барионов со средней погрешностью в 1%. Больше всего разброс даёт s-струна - не зря названа Strange.

Читать далее

Автоматизация SEO-рутины: как я собрал свой набор проверок в один инструмент

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

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

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

Читать далее

Проблемы с производительностью веб-сервисов: как находить и устранять

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

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

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

Читать далее

CreateObservableStore: реактивный store с гранулярными подписками и идеальной интеграцией с React

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

В статье рассматривается библиотека @qtpy/state-management-observable и её React-обёртка @qtpy/state-management-react, объединяющая реактивность, строгую типизацию и удобный API. Если вы ищете альтернативу Redux, Zustand или Valtio с поддержкой undo/redo, granular-подписок, middleware, асинхронных обновлений и прозрачной работы с массивами через Proxy — createObservableStore может стать хорошим выбором.

Читать далее

Head Hunters на LinkedIn — они очень хотят, чтобы вы сделали тестовое задание

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

Знакомая ситуация? Неизвестный вам контакт пишет на LinkedIn, предлагает работу мечты... Но что‑то вас останавливает, вы уверены, что вас хотят обмануть! В этой статье я расскажу вам о новом способе атаки на разработчиков, под названием OtterCookie.

Читать далее

Управление скоростью маркетинговых рассылок: как не уложить фронтенд-платформу

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

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

Меня зовут Сергей Бакалдин, я работаю в команде ComPath. Сегодня я расскажу историю о том, как одна неосторожная e‑mail-рассылка чуть не положила фронтенд-систему «Спортмастера», и как мы от этого открестились с помощью гибкого механизма управления скоростью рассылок.

Читать далее

Vue 2 в 2025: какие паттерны стоит забыть, а какие – оставить

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

Vue 2 в 2025 году официально стал legacy, но множество проектов всё ещё работают на нём. Миграция на Vue 3 не всегда возможна сразу, поэтому важно правильно поддерживать и модернизировать старый код.

В этой статье разберём:

Устаревшие паттерны, от которых лучше избавиться.

Проверенные подходы, которые остаются актуальными.

Альтернативы из Vue 3, которые можно адаптировать уже сейчас

Читать далее

Frontend и OpenAPI: генерация клиента, мокирование API и данных с помощью MSW

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

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

Читать далее

Прощай, Zone.js: ускоряем Angular с Signal API и Zoneless-подходом

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

Привет! Я Незар, фронтенд-разработчик Т-Банка в одном из продуктов Т-Бизнеса. Наша команда использует Angular, и мы следим за всеми изменениями, которые с ним происходят.

В статье разберу, как Angular эволюционировал от Zone.js к Zoneless-приложениям с современным реактивным подходом Signal API и почему это стало ключевым шагом для повышения производительности и упрощения реактивного программирования. 

На примерах и замерах производительности посмотрим, как переход к Zoneless-подходу с Signal API позволяет сократить избыточные перерисовки, ускорить отклик приложения и сделать код значительно чище и предсказуемее. Сделаем Angular-приложения быстрее и проще, добро пожаловать под кат!

Читать далее

Как мы засунули Git в браузер (и чего нам это стоило)

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели12K

Привет, Хабр! Меня зовут Паша, я разработчик Gramax — open source-платформы для управления технической документацией в подходе Docs as Code.

В этой статья я расскажу, как и для чего мы интегрировали Git в браузер, какие технологии использовали и какие технические решения приняли. А если подробнее: почему отказались от IsomorphicGit в пользу libgit2, каким образом мы собрали его под WebAssembly, как он работает с файлами и зачем вообще все это было нужно.

Читать далее

ThreeJs — основы

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

Привет, хочу рассказать основу о том как быстро начать пилить продвинутые приложения с 3d моделями.

Для того чтобы лучше понимать контекст последующего материала ожидается что у тебя уже есть знания js, а также react.

Читать далее

Лучшие библиотеки UI-компонентов для React в 2025 году

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

React остаётся одним из самых популярных инструментов для фронтенд-разработки. Библиотеки UI-компонентов для React значительно развились, предоставляя разработчикам инструменты для создания современных, эффективных и доступных интерфейсов. В этой статье рассмотрим топовые библиотеки UI-компонентов для React, которые стали популярными в 2025 году, и их ключевые особенности.

Читать далее

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

Steroids — ещё один фронтенд фреймворк на базе React?

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

На старте проекта обычно встает вопрос о выборе готовой ui-библиотеки для решения шаблонных задач, таких как создание форм, инпутов, кнопок и других компонентов. Количество готовых ui-библиотек для React так стремительно растет, что уже сложно остановить свой выбор на какой либо из них. Зато в таком разнообразии каждый может найти библиотеку, подходящую под его задачи. В этой статье хочется рассказать о фреймворке Steroids, который разработан и поддерживается в нашей компании.

Изначально мы не планировали создавать фреймворк, а просто собирали удачные решения рутинных задач. Получился набор полезных утилит и мини-библиотек, который позволял нам работать быстрее. Мы постепенно добавляли в него новые элементы, он рос и видоизменялся, и в итоге вырос в полноценный фреймворк Steroids.

Читать далее

Async pipe нечистый

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

Всем привет, меня зовут Максим Иванов. В основном я пишу обзоры и русифицирую статьи для начинающих разработчиков. Я очень люблю Angular и иногда рассказывать что-то о нем. Если вы только начинаете свой путь в изучении этого фреймворка, надеюсь эта статья будет вам полезной. Cегодня мы с вами поговорим о том, что такое пайпы (pipes), как они устроены и что не так с одним из самых популярных и доступных из коробки пайпов, таких как async. Желаю приятного прочтения и хорошего настроения. Поехали!

Читать далее

Почему я отказался внедрять тёмные паттерны и не получил оффер на фронтенд-лида

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

Всем привет! Меня зовут Александр Григоренко, я фронтенд-разработчик, и сегодня хочу поговорить о вопросах этики в интерфейсах и ценностях в разработке на примере одного моего недавнего собеседования. Это история о том, почему я отказался внедрять тёмные паттерны и не получил оффер на фронтенд-лида.

Читать далее

Как я пишу код быстрее

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

Вечный вопрос разработчика: как писать код быстрее, не превращая его в поддерживаемый кошмар? Дедлайны давят, требования растут, а перфекционизм подсказывает: «Ещё рефакторинг!»

Автор годами искал баланс между скоростью и качеством в разработке ПО и вывел практические правила. Делимся опытом: черновики вместо идеала, борьба с отвлечениями, маленькие патчи и другие навыки, реально ускоряющие работу.

Готовы ускориться?

Почему именно юнит-тесты: искусство укрощения кода маленькими шагами

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

Признаемся честно: слово «тестирование» вызывает у многих разработчиков примерно такую же радость, как поход к стоматологу. Большинство морщится и думает: «Опять эти тесты... Лучше бы новую фичу запилил!» И я вас прекрасно понимаю — сам когда-то был в лагере скептиков.

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

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

Читать далее

Как я полюбил LESS и с его помощью избавился от копипасты в своём CSS-коде, а разметку сделал семантической

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

В силу личной специфики (я чаще работаю не над веб-страницами, а над интерфейсами для десктопных и мобильных приложений, которые пишу на HTML/CSS), я долго избегал рабочие процессы сложнее, чем «отредактировал CSS-файл и сохранил его», и открыл для себя CSS-препроцессинг довольно поздно, но… В наши дни он, в общем-то, ничуть не устарел, и актуален не меньше, чем раньше. Так что, если вы пишете CSS (а не генерируете его) для чего угодно (SPA, приложения, лендинги, веб-аппы и т.д.), но до сих пор не пользуетесь LESS или SASS — приглашаю под кат, где я, стараясь не опускаться до уровня «очередной-пересказ-учебника», немного расскажу о принципах LESS, инструментах, его текущем состоянии и поделюсь своими техниками и приёмами (с примерами). А если вы не пишете CSS, но знакомы с традиционными языками программирования, всё равно добро пожаловать: я провожу параллели между ними и LESS, а заодно рассказываю об очень полезных принципах проектирования от Алана Кея.

Читать далее

Внедрение зависимостей (DI) через библиотеку Tsyringe

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

Привет, Хабр! Меня зовут Роман Мельник, я фронтенд-разработчик во «ВКонтакте для Бизнеса». Наша команда создаёт инструменты, которые помогают владельцам сообществ управлять и развивать свои проекты. Сегодня я расскажу про Dependency Injection (DI) через библиотеку Tsyringe.

Почему это важно? Крупные проекты сталкиваются со следующими проблемами: разрастающимся глобальным стором, сложностями тестирования, масштабирования и переиспользования кода. Внедрение зависимостей помогает решить эти вопросы, делая код гибким и управляемым. На практике это выглядит гораздо интереснее. Давайте разберёмся!

Начнём с архитектурных принципов и паттернов.

Читать далее