Обновить

Фронтенд

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

Я устал читать простыни текста от ИИ‑агентов. Поэтому заставил их рисовать блок схемы и скетчи форм

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

Всем привет! Скажу честно: я как программист очень устал читать горы текста, которые выдают ИИ-кодинг-агенты. Это прямо больно. В частности, когда ты просишь создать файл plan.md, в котором необходимо описать, что нужно сделать, чтобы написать код с нуля или добавить новую фичу в уже существующий проект, я получаю простыню текста в формате Markdown. Ни прототипов интерфейсов, ни диаграмм, которые визуально объясняют, как все работает и выглядит. Читать - тоска зеленая. Вот куда интереснее смотреть на прототипы UI-интерфейса и диаграммы со стрелочками, которые показывают, как всё работает. Как говорят, лучше один раз увидеть, чем сто раз услышать - пардон, прочитать.

Читать далее

Новости

Что можно сделать, имея всего::before и::after

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

У каждого HTML-элемента есть всего два псевдоэлемента: before и after — и с помощью них можно сделать крутые элементы.

Разберём, как с помощью обычного CSS превратить два псевдоэлемента в крутые графические штуки. Как создавать сложные формы через clip-path, собирать композиции из нескольких градиентов, работать с масками и режимами смешивания, а также строить анимации и элементы интерфейса без лишней HTML-разметки.

Читать далее

Вы полюбите перегрузку в TypeScript

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

Перегрузка в TypeScript кажется сложнее, чем есть на самом деле. Разберёмся, какие задачи она решает, чем может быть полезна в повседневной разработке и как начать применять её в своём проекте.

На практике шаг за шагом пройдём все этапы создания перегрузок: от проектирования до реализации. Без погружения в дебри документации, с понятными примерами и полезными инструментами.

Читать далее

Возможности сводных таблиц в Superset

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

С версии Superset 6.0 в метрики сводных таблиц можно подставлять произвольный HTML. Это открывает возможности, которые раньше казались недоступными — например, карточки KPI прямо в ячейках Pivot Table.

Я уже описывала различные фишки, которые можно реализовывать в сводных таблицах: здесь, здесь и здесь.

В данной статье продолжу раскрывать потенциал сводных таблиц.

Читать далее

Двухпанельный менеджер закладок для браузера: Total Bookmarks

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

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

Читать далее

PromptBeats: музыка из текста прямо в браузере

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

Рассказываем про хакатон-проект за 6 часов: браузерное приложение, в котором можно набросать мелодию вручную, а затем развивать её с помощью промптов.

Читать далее

Среда исполнения JavaScript в браузере по стандарту HTML: агенты, event loop, task'и и микрозадачи

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

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

Зависшая вкладка может подвесить соседнюю, например ту, которая открыла её через window.open().

Один и тот же код может выдать разный порядок вывода, и всё зависит от того, кто его вызвал.

Слова «макрозадача», которое звучит на каждом собеседовании, в стандарте нет: то, что им называют, - просто обычная task.

Разобрать по стандарту

React 19: разделяем логику и разметку, тестируем с Shallowly и Vitest

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

На примере панели профиля вынесем логику и подготовку данных в useSetup[Component], а в компоненте оставим разметку. Затем отдельно проверим setup-хук, компонент через Shallowly и взаимодействие через React Testing Library. В конце — полный пример с Vitest, который можно забрать и запустить.

Читать далее

Vite, OOM и сервер на 4 ГБ: как мы снизили память сборки на 52%

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

Сборка нового Vue-приложения проходила локально, а на сервере с 4 ГБ RAM заканчивалась убийством Node по OOM. Мы ограничивали heap, меняли импорты, отключали минификацию и проверяли другие сборщики.

Рассказываю, что помогло, какие оптимизации почти ничего не дали и почему добавили Rsbuild. В наших серверных замерах пиковый RSS снизился с 1681 до 802 MiB, а время сборки — с 41 до 11,7 секунды. В статье — условия сравнения, таблицы и ограничения этих результатов.

Читать далее

Карандашный набросок, который заливается акварелью: разбираю эффект на SVG без библиотек

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

Делал интерактивную открытку на день рождения и хотел, чтобы картинка не просто появлялась, а «рисовалась»: сначала карандашные линии, потом по касанию её заливает акварель, причём с рваным краем, как у краски, которая впитывается в бумагу.

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

Читать далее

Печатный каталог в HTML — сверстать и не пожалеть

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

Теперь каталог живёт в HTML и CSS: текст, таблицы и схемы лежат в одном проекте и правятся вместе, PDF получается печатью из браузера. CorelDRAW остаётся только на полиграфическую доводку. Насколько это проще, видно по предыдущему каталогу: 35 страниц, текст и таблицы через Word, схемы через Inkscape, макет в CorelDRAW — и каждая правка означала новый экспорт и повторную ручную доводку. Что дал этот странный подход и чем пришлось заплатить.

Читать далее

Как пространственное внимание помогает CNN определять наличие подписи на документе

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

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

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

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

Читать далее

React 19.3: что реально поменялось и почему это важно

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

Если следить за React только по крупным релизам, легко пропустить момент, когда библиотека тихо меняет направление. React 19.3 — как раз такой случай. Сам релиз вышел 9 сентября 2026 года. И я хочу поделиться парой моментов из этого обновления. Рассмотрим пару хуков это ViewTransition и Fragment Refs. Еще, что я могу выделить, это новые возможности для SSR, Server Components и работы с браузерными API.

Читать далее

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

Адаптеры вместо switch-case: как мы разложили Angular-форму на 40 полей

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

Привет! Я Дмитрий Чепайкин, старший Angular-разработчик в команде Klecks —  платформы для разметки данных AI-центра Т-Банка.

В какой-то момент наш сервис редактирования заказа разросся до 700+ строк: switch-case на десятки полей, конвертеры, валидаторы и сравнение с исходными данными — все в одном файле. Мы применили паттерн адаптеров: каждое поле формы получило свой класс с единым интерфейсом. Расскажу, с какими болями столкнулись, как устроен подход и что получилось в итоге.

Читать далее

Почему попап расширения Chrome открывался 89 секунд

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

Расширения Chrome иногда могут душить сами себя, попадая в бесконечные циклы. В статье я расскажу о том, как искал причины странного поведения pop-up окна нашего внутреннего расширения. Найдя их, я провёл ряд оптимизаций, а ещё создал чек-лист проверок, которые полезно выполнять перед публикацией нового расширения Chrome.

Читать далее

Как фронтенд‑команде сделать мобильное приложение без нативных разработчиков

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

Нативных разработчиков в команде нет, зато половина хорошо знает Vue, поэтому мобильное приложение для iOS и Android я как лид решил делать на Vue и Capacitor. Разбираю, что этот стек дал веб‑команде, какие сложности пришлось решить с нативным тулчейном, вырезом экрана и клавиатурой и когда Capacitor стоит брать.

Читать далее

Жаргон функционального программирования

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

Функциональное программирование (ФП) предоставляет много преимуществ, и, как следствие, его популярность растет. Однако, каждая парадигма программирования имеет собственный уникальный жаргон и ФП не исключение. Цель этого словаря терминов — облегчить изучение ФП.

Примеры написаны на JavaScript (ES2015). Почему JavaScript?

Где уместно, в этом документе используются термины, определенные в Fantasy Land spec.

Читать далее

Дельты, Jinja и HTML в сводных таблицах SuperSet

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

В шестой версии SuperSet появилась возможность прописывать HTML код в метриках  и измерениях сводных таблиц, что значительно расширило  приемы для BI-разработчиков по форматированию  таблиц.  Покажу как в SuperSet можно реализовать сводную таблицу со сменой периодов и выводом красивой дельты.

Читать далее

Aquilum: open source заметочник на Rust без WebView и Electron

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

Я учел фидбек сообщества, открыл исходный код и сменил стек — теперь на Rust написано 99,6% всего кода, а от Tauri и Webview я полностью отказался.

В статье расскажу, какие библиотеки используются, какой функционал пришлось написать с нуля и с какими трудностями столкнуться.

Узнать больше

Скам расправил плечи: как ИИ открыл возможности для мошенников в ИТ‑найме

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

Сейчас в ИТ-сфере довольно турбулентно и непредсказуемо: экономическая нестабильность, массовые увольнения, сокращение общего числа вакансий, повсеместное внедрение ИИ, который угрожает заменить разработчиков. Все заставляет переживать работников интеллектуальной сферы. 

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

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