Frontend Головного Мозга
СтатистикаФронтендер из сибири, обо всём что связано с frontend разработкой и интересно самому: ✅ Новости, статьи, ✅ Авторские кейсы, ✅ Песочница, готовые UI макеты. ✅ Юмор Я хочу услышать три главных слова: JS, Angular, Redux Сотрудничество: @cyberJohnny
- Последний пост
- 13 авг.
- Последнее чтение
- 20:53
- Постов за неделю
- 1
- Всего постов
- 23
- Тип
- открытый
- Язык
- русский
- Категория
- Развлечения
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- 275
- 1/48двое суток
- 315
- 1/72трое суток
- 339
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Модель показывает отличную точность в ноутбуке, но так и не становится рабочим сервисом. Причина часто не в качестве самой модели, а в архитектуре системы вокруг неё. 07 сентября в 20:00 на открытом уроке курса «ML System Design» вы разберёте, как превратить модель на Python в полноценный ML-сервис. Увидите, как связаны хранение данных, обучение, реестр моделей, сервис инференса и мониторинг. На занятии рассмотрите весь жизненный цикл модели — от обучения до эксплуатации в постоянно меняющихся условиях. Поймёте, почему высокая точность ещё не гарантирует успешного внедрения и какие инженерные задачи возникают при работе с реальными пользователями и большими объёмами данных. Урок будет полезен специалистам по данным, ML- и MLOps-инженерам, разработчикам и архитекторам. Урок проведёт Игорь Стурейко. https://vk.cc/d0qtPY Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
TanStack Form: новый стандарт для работы с формами в JS Все знают TanStack Query (бывший React Query), который перевернул работу с запросами. Теперь команда разработчиков выпустила TanStack Form - библиотеку для управления формами, которая решает старые боли фронтендеров. Главные фишки: 🟢Агностицизм: работает не только с React, но и с Vue, Angular, Solid, Svelte и даже Vanilla JS. 🟢100% Type-Safe: глубокая интеграция с TypeScript. Ошибки в названиях полей или типах данных подсвечиваются прямо при написании кода. 🟢Валидация без привязки: можно использовать любую привычную библиотеку (Zod, Valibot, Yup) или писать кастомные функции. 🟢Производительность: библиотека обновляет состояние точечно, поэтому даже огромные формы с сотнями полей не будут тормозить интерфейс. Если вам надоело мучиться с настройкой сложных форм, TanStack Form - отличный кандидат на замену старым инструментам. 👉 @frontend_mind
«Летающий» фокус на View Transitions API Анимация перемещения фокуса между элементами (focus ring) делает интерфейс «живее» и помогает пользователю не терять активный элемент при навигации с клавиатуры. Раньше для этого высчитывали координаты через getBoundingClientRect, теперь всё делает браузер. Вместо анимации самой кнопки мы анимируем только рамку фокуса. Для этого каждому интерактивному элементу добавляется вспомогательный . 1️⃣ CSS: Рамка фокуса получает уникальное view-transition-name только в тот момент, когда родительский элемент находится в состоянии :focus-visible. 2️⃣ JS: Переключаем фокус программно внутри startViewTransition. Браузер увидит, что элемент с именем focus-ring переместился и изменил размер, и сам создаст плавный переход. 👉 @frontend_mind
CSS-анимация на примере аналоговых часов Классический разбор того, как знание спецификации заменяет скрипты. Автор воссоздал реалистичные часы, используя только возможности CSS3. Адаптивность через em: Один font-size родителя масштабирует все часы пропорционально (включая тени и засечки). Реалистичный хром: Многослойные box-shadow (внешние и inset) создают объем и металлический блеск без картинок. Вложенные transform: rotate(): Умная расстановка минутных делений по кругу с помощью всего нескольких тегов . Тиканье стрелки: Анимация с animation-timing-function: steps(60) вместо плавного вращения. Понимание вложенных трансформаций и оптимизации рендеринга помогает делать производительные UI-анимации, не нагружая Main Thread. 📖 Детали реализации на Хабре: https://habr.com/ru/articles/171015/ 👉 @frontend_mind
Find the stray number Вам дан массив целых чисел нечетной длины, все из которых одинаковы, за исключением одного единственного числа. Завершите метод, который принимает такой массив и возвращает это единственное число. Входной массив всегда будет верным! (нечетная длина >= 3) Примеры: [1, 1, 2] ==> 2 [17, 17, 3, 17, 17, 17, 17] ==> 3 👉 @frontend_mind
Программирование в алгоритмах Искусство программирования представлено в виде учебного курса, раскрывающего секреты наиболее популярных алгоритмов. Освещены такие вопросы, как комбинаторные алгоритмы, перебор, алгоритмы на графах, алгоритмы вычислительной геометрии. Приводятся избранные олимпиадные задачи по программированию с указаниями к решению. 👉 @frontend_mind
@frontend_mind
Как реализовать перегрузку функции в TypeScript? TypeScript поддерживает перегрузку функций, но её реализация отличается от той, которую можно видеть в других языках. А именно, описывается лишь одна функция и некоторое количество её объявлений с разными параметрами. Когда такой код компилируется в JavaScript, в нём остаётся лишь одна функция. Этот механизм работает благодаря тому, что JS-функции можно вызывать с любым количеством параметров. class Foo { myMethod(a: string); myMethod(a: number); myMethod(a: number, b: string); myMethod(a: any, b ? : string) { alert(a.toString()); } } 👉 @frontend_mind
видео или голосовое, без подписи
@frontend_mind
Story Points или искусство делать ставку на выдуманные числа Сегодня я хотел бы в очередной раз поднять тему оценки задач, а конкретно оценки при помощи Story Points. Хотя мы давно применяем их в работе, оказалось, что команда по-разному трактует детали. Поэтому мы решили систематизировать и выровнять наши знания, собрать хорошие практики по работе со Story Points и попробовать улучшить процедуру оценки задач у нас. Результатом работы стал этот материал, которым я с радостью делюсь с вами. Он не претендует на откровения, но удобно собирает терминологию, практические советы и наш опыт — возможно, это сэкономит вам пару-тройку Story Points. 👉 @frontend_mind
CSS cвойство margin Margin задаёт внешние отступы вокруг элемента. Эти отступы не являются частью ширины/высоты элемента при любом значении box-sizing. Схлопывание Вертикальные отступы схлопываются друг с другом, горизонтальные – нет. То-есть, если два расположить в колонку (один под другим) и задать каждому margin: 20px 0, то расстояние между ними будет равняться 20px, а не 40px. При этом, если бы у верхнего элемента был задан отступ в 40px, а у нижнего - в 30px, то автоматически выбрался бы больший из них - 40px. Горизонтальные отступы при этом не схлопываются, а суммируются. Отрицательные значения Отрицательные значения margin-top/margin-left смещают элемент со своего обычного места. В CSS есть другой способ добиться похожего эффекта – а именно position:relative. Но между ними есть одно принципиальное различие: при сдвиге через margin соседние элементы занимают освободившееся пространство в отличие от position: relative, при котором элемент визуально сдвигается, но место, где он был, остаётся «занятым». 👉 @frontend_mind
видео или голосовое, без подписи
@frontend_mind
👉 @frontend_mind
Find numbers with 3 divisors Ваша задача — написать функцию, которая принимает два целых числа n, m и возвращает отсортированный массив всех целых чисел от n до m включительно, имеющих всего 3 делителя (без учета 1 и самого числа). Пример: solution(2, 20) -> [16] // У 16 три делителя - 2, 4, 8 👉 @frontend_mind
@frontend_mind
Data Structures & Algorithms with JavaScript Хорошая книга, рассчитанная для тех, кто считает, что JavaScript нужен не только для анимаций и баннеров. Из книги вы узнаете всё про классические структуры данных и алгоритмы с различными примерами реализации. В книге описана работа с алгоритмами поиска/сортировки, массивами, списками, хэш-таблицами и много других полезных тем, которые нужно знать JS-разработчику. 👉 @frontend_mind
Что делает babel? Babel – это транспилер для JavaScript, который преобразует современный код (ES6+ и JSX) в старый, совместимый с более старыми браузерами. Поддержка старых браузеров Некоторые браузеры (например, Internet Explorer) не поддерживают новые фичи JavaScript. Babel переводит код на более старый стандарт, чтобы он работал везде. Поддержка современных стандартов (ES6, ES7, ES8...) Позволяет использовать новые возможности JavaScript, даже если браузер их пока не поддерживает. Компиляция JSX Babel преобразует JSX (используется в React) в обычный JavaScript. Оптимизация и эксперименты Можно использовать нестандартные предложения для JavaScript, такие как плагины для новых фич. Как это работает? Babel делает три шага: Парсинг – разбор кода в абстрактное синтаксическое дерево (AST). Трансформация – изменение AST (например, замена const на var). Генерация – создание нового кода из изменённого AST. Пример работы Babel Современный JavaScript (ES6+) const greet = (name) => `Hello, ${name}!`; console.log(greet("Alice")); После транспиляции Babel (ES5) "use strict"; function greet(name) { return "Hello, " + name + "!"; } console.log(greet("Alice")); 👉 @frontend_mind
Хватит писать «чистый» код. Пора писать понятный код Да, это очередная статья по чистому коду. Но по разным источникам, соотношение времени, затрачиваемого на чтение и написание кода, может достигать 7 к 1 и даже больше. Когда вы исправляете ошибку, добавляете новую функциональность или проводите рефакторинг, вы сначала погружаетесь в логику, написанную другими людьми (или вами же, но несколько месяцев назад). Именно поэтому читаемость кода становится более важным фактором, чем скорость его первоначального написания. Нечитаемый код — это технический долг, который замедляет всю команду и увеличивает стоимость разработки в долгосрочной перспективе. 👉 @frontend_mind