Как хороший фронтенд превращается в легаси?
Обычно всё начинается с вполне разумных решений...
Вынести повторяющийся код. Сделать универсальный хук. Добавить пару условий в компонент. Быстро прикрутить useEffect, чтобы «просто заработало».
Cо временем такие решения накапливаются, проект становится всё сложнее поддерживать, тестировать и развивать.
Наша разработчица Виктория Копылова разобрала самые распространенные архитектурные ошибки, из-за которых фронтенд обрастает сложностью: преждевременные абстракции, перегруженные хуки, компоненты с лишней ответственностью, useEffect не по назначению и другие решения, которые выглядят безобидно только в моменте.
В карточках собрали главные мысли из статьи, а полный разбор с примерами кода уже ждет на Хабре по ссылке.
➿ ➿ ➿ ➿ ➿ ➿
@alfa_frontend — сообщество фронтендеров: делимся новым, обмениваемся опытом и проводим митапы
Обычно всё начинается с вполне разумных решений...
Вынести повторяющийся код. Сделать универсальный хук. Добавить пару условий в компонент. Быстро прикрутить useEffect, чтобы «просто заработало».
Cо временем такие решения накапливаются, проект становится всё сложнее поддерживать, тестировать и развивать.
Наша разработчица Виктория Копылова разобрала самые распространенные архитектурные ошибки, из-за которых фронтенд обрастает сложностью: преждевременные абстракции, перегруженные хуки, компоненты с лишней ответственностью, useEffect не по назначению и другие решения, которые выглядят безобидно только в моменте.
В карточках собрали главные мысли из статьи, а полный разбор с примерами кода уже ждет на Хабре по ссылке.
@alfa_frontend — сообщество фронтендеров: делимся новым, обмениваемся опытом и проводим митапы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤7⚡4
Релизить себя так же бережно, как код? Почему бы и нет!
Мы привыкли выкатывать фичи с чек-листами, мониторингом, планом отката и поддержкой команды. Но почему-то к себе относимся совсем иначе. Часто держим всё в голове, игнорируем тревожные «алерты» и пытаемся справиться в одиночку.
Наша разработчица Виктория Копылова предлагает посмотреть на тревожность глазами инженера. Собрали в карточках ключевые идеи подхода, а полный материал читайте по ссылке🔗
#af_hard
❤️ Больше рассказываем о работе в IT и Digital в канале Alfa Digital
Мы привыкли выкатывать фичи с чек-листами, мониторингом, планом отката и поддержкой команды. Но почему-то к себе относимся совсем иначе. Часто держим всё в голове, игнорируем тревожные «алерты» и пытаемся справиться в одиночку.
Наша разработчица Виктория Копылова предлагает посмотреть на тревожность глазами инженера. Собрали в карточках ключевые идеи подхода, а полный материал читайте по ссылке
#af_hard
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍4🔥4
Что там новенького в ES2026 👀
30 июня Ecma ратифицировала ES2026 — семнадцатую редакцию спецификации, в которой представили семь новых фич.
Начнём с той, которую обсуждают меньше остальных.А зря...
Math.sumPrecise
Классическая ошибка в JS:
Или версия пожёстче:
Теперь:
Внутри используется алгоритм Шевчука. Он складывает числа так, как будто считает в точной математике, и округляет только финальный результат.
Но вот что стоит знать до того, как побежите менять все
Хотите, разберём остальные новые методы JS на практике? Пишите в комментариях, что рассмотреть следующим🔽
#af_hard
❤️ Больше рассказываем о работе в IT и Digital в канале Alfa Digital
30 июня Ecma ратифицировала ES2026 — семнадцатую редакцию спецификации, в которой представили семь новых фич.
Начнём с той, которую обсуждают меньше остальных.
Math.sumPrecise
Классическая ошибка в JS:
const cents = Array(10000).fill(0.1);
cents.reduce((a, b) => a + b);
// 1000.0000000001588
Или версия пожёстче:
[1e20, 0.1, -1e20].reduce((a, b) => a + b);
// 0
0.1 просто исчезла. 1e20 + 0.1 теряет дробную часть из-за ограниченной точности IEEE-754. В итоге после вычитания остаётся 0.Теперь:
Math.sumPrecise([1e20, 0.1, -1e20]);
// 0.1
Внутри используется алгоритм Шевчука. Он складывает числа так, как будто считает в точной математике, и округляет только финальный результат.
Но вот что стоит знать до того, как побежите менять все
reduce в проекте:🔴 Math.sumPrecise не исправляет проблему 0.1 + 0.2. Math.sumPrecise([0.1, 0.2]) по-прежнему вернёт 0.30000000000000004. Дело в том, что сами числа 0.1 и 0.2 уже хранятся в памяти не совсем как математические 0.1 и 0.2. Новый метод исправляет накопление ошибок при суммировании, а не способ представления чисел.
🔴 Math.sumPrecise ожидаемо работает медленнее обычного сложения.
🔴 На момент написания поста типов в lib.es*.d.ts ещё нет, в репозитории TypeScript висит issue. Поэтому пока остаются два варианта: расширить интерфейс Math самостоятельно или подождать.
🔴 Math.sumPrecise уже доступен в Baseline 2026. Для старых браузеров можно использовать полифиллы core-js или es-shims (math.sumprecise).
Хотите, разберём остальные новые методы JS на практике? Пишите в комментариях, что рассмотреть следующим
#af_hard
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤8❤🔥5⚡1
Подглядываем за рабочими местами 🚨
У каждого свой подход к рабочему месту, кому-то достаточно ноутбука и удобного стула, а кто-то превращает домашний стол в отдельный проект.
Собрали несколько рабочих сетапов наших фронтендеров с их лайфхаками и историями о том, что помогает сохранять рабочий вайб дома.
Александр Китoв, главный технический лидер разработки, владелец стола на 6 карточке:
Виктория Копылова, старший разработчик, владелец стола на 2 карточке:
Илья Туров, ведущий разработчик, владелец стола на 5 карточке:
Теперь хотим посмотреть, как устроены ваши рабочие места 👀
Кидайте фотографии в комментарии и делитесь своими секретами🔽
#af_soft
❤️ Больше рассказываем о работе в IT и Digital в канале Alfa Digital
У каждого свой подход к рабочему месту, кому-то достаточно ноутбука и удобного стула, а кто-то превращает домашний стол в отдельный проект.
Собрали несколько рабочих сетапов наших фронтендеров с их лайфхаками и историями о том, что помогает сохранять рабочий вайб дома.
Александр Китoв, главный технический лидер разработки, владелец стола на 6 карточке:
«Важно, чтобы было удобно. Я провожу большую часть жизни на этом месте, поэтому логично в него вкладываться и постоянно что-то улучшать. Клавиатуру собрал буквально пару месяцев назад: корпус смоделировал и напечатал на 3D-принтере, а потом спаял всё с нулевым опытом пайки. В процессе, конечно, намучился, но результатом доволен».
Виктория Копылова, старший разработчик, владелец стола на 2 карточке:
«Моё рабочее место в первую очередь про уют. Очень люблю большой экран, с ним появляется ощущение простора, где можно разложить всё, что нужно для работы. А милые мелочи помогают не забывать, что работа может быть не только продуктивной, но и приятной».
Илья Туров, ведущий разработчик, владелец стола на 5 карточке:
«Мне всегда важно держать бумажный блокнот под рукой, чтобы записывать самые важные задачи. Иногда включаю пластинки, когда занимаюсь чем-то рутинным, но для концентрации мне обязательно нужна тишина. А голубей использую вместо уточек, когда нужно в чём-то разобраться (и вообще они крутые!)».
Теперь хотим посмотреть, как устроены ваши рабочие места 👀
Кидайте фотографии в комментарии и делитесь своими секретами
#af_soft
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6❤4
Рассказываем про Zustand 🔥
Основным стейт-менеджером в Альфе является Redux. Но мы часто пробуем что-то новое, и однажды наш взгляд упал на Zustand.
Zustand — крошечный state manager, который можно использовать не только с React. У него небольшой вес и почти полностью отсутствует boilerplate.
Всего пару строк кода, а у вас уже есть стор и хендлер к нему, просто и понятно.
▶️ Как мы мигрировали с Redux на Zustand
Миграция проходила поэтапно. Удаляем один Redux-слайс, добавляем один Zustand-стор, так по очереди.
Сторы в Zustand независимы, поэтому внедрять его можно отдельными «островками». Это позволяет мигрировать плавно и без больших затрат.
Вопрос middleware тоже решился просто, есть множество существующих решений, а написать свои не составило труда.
С отладкой все максимально понятно, так как Zustand использует devtools от Redux.
▶️ Что показали замеры
По итогам наших замеров, Zustand показал себя на 72% быстрее Redux. Речь идёт о микросекундах, проект был небольшим. Поэтому с ростом проекта разница может стать заметнее.
▶️ Как восприняла команда
Поначалу Zustand кажется слишком простым для enterprise-проектов.
Но разработчики быстро оценили его подход. Функциональности хватает для разных задач, а сам инструмент поддерживает асинхронные экшены и готовые или кастомные middleware.
В итоге Zustand стал частью наших проектов и стандартов.
А что используете вы на своих проектах?🔽
#af_hard
❤️ Больше рассказываем о работе в IT и Digital в канале Alfa Digital
Основным стейт-менеджером в Альфе является Redux. Но мы часто пробуем что-то новое, и однажды наш взгляд упал на Zustand.
Zustand — крошечный state manager, который можно использовать не только с React. У него небольшой вес и почти полностью отсутствует boilerplate.
const useBear = create((set) => ({
bears: 0,
updateBears: (newBears) => set({
bears: newBears
}),
}))
Всего пару строк кода, а у вас уже есть стор и хендлер к нему, просто и понятно.
Миграция проходила поэтапно. Удаляем один Redux-слайс, добавляем один Zustand-стор, так по очереди.
Сторы в Zustand независимы, поэтому внедрять его можно отдельными «островками». Это позволяет мигрировать плавно и без больших затрат.
Вопрос middleware тоже решился просто, есть множество существующих решений, а написать свои не составило труда.
С отладкой все максимально понятно, так как Zustand использует devtools от Redux.
По итогам наших замеров, Zustand показал себя на 72% быстрее Redux. Речь идёт о микросекундах, проект был небольшим. Поэтому с ростом проекта разница может стать заметнее.
Поначалу Zustand кажется слишком простым для enterprise-проектов.
Но разработчики быстро оценили его подход. Функциональности хватает для разных задач, а сам инструмент поддерживает асинхронные экшены и готовые или кастомные middleware.
В итоге Zustand стал частью наших проектов и стандартов.
А что используете вы на своих проектах?
#af_hard
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤9🥰4❤🔥1
Forwarded from Alfa Digital
Кто лучший работодатель? 👀
ЭКОПСИ и Хабр шестой год подряд исследуют HR-бренды IT-компаний. За это время поменялось само представление о хорошем работодателе — вот что показал 2025 год:
🔹 Стабильность впервые за пять лет попала в список главных критериев кандидатов
🔹 Общие ценности с компанией стали важнее зарплаты
🔗 А чтобы определить тренды найма и лучших работодателей в 2026 году, нужно ваше мнение — поделитесь им в опросе. И оцените Альфа-Банк ❤
#анонс
❤ Подписывайтесь на @alfadigital_jobs
ЭКОПСИ и Хабр шестой год подряд исследуют HR-бренды IT-компаний. За это время поменялось само представление о хорошем работодателе — вот что показал 2025 год:
#анонс
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝3❤2🔥2