21509
Все самое полезное для фронтенда в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/77178ed4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
🌸 Как эффективно использовать Vue Composition API
Vue Composition API позволяет создавать более гибкие, масштабируемые и чистые компоненты, разделяя логику по частям. Вместо того чтобы создавать большие компоненты, мы можем инкапсулировать логику в функции.
Почему важно:
📍 Повышает читаемость и поддерживаемость кода
📍 Облегчает тестирование
📍 Улучшает повторное использование логики
1. Основы Composition API:
import { ref, computed } from 'vue';
export default {
setup() {
const count = ref(0);
const doubledCount = computed(() => count.value * 2);
const increment = () => {
count.value++;
};
return { count, doubledCount, increment };
},
};
ref(): создаёт реактивные данные для примитивных типов.computed(): создаёт вычисляемые значения.
// useCounter.js
import { ref } from 'vue';
export function useCounter() {
const count = ref(0);
const increment = () => count.value++;
return { count, increment };
}
import { useCounter } from './useCounter';
export default {
setup() {
const { count, increment } = useCounter();
return { count, increment };
},
};
import { ref } from 'vue';
export function useFetch(url) {
const data = ref(null);
const loading = ref(true);
fetch(url)
.then(response => response.json())
.then(fetchedData => {
data.value = fetchedData;
loading.value = false;
});
return { data, loading };
}
import { useFetch } from './useFetch';
export default {
setup() {
const { data, loading } = useFetch('https://api.example.com');
return { data, loading };
},
};
🧪 Feature-флаги во фронте
В проекте нужно включать/отключать экспериментальные фичи для разных пользователей. Вы решаете внедрить систему feature flag’ов.
Рассматриваются такие варианты:
➰ Получение флагов с сервера
➰ Чтение из .env
➰ Флаги на этапе билда
➰ Рендеринг на сервере с разными конфигурациями
Что обязательно нужно учесть при выборе способа ❓
🐸 Библиотека фронтендера
#междусобойчик
😅
🐸 Библиотека фронтендера
#развлекалово
😤 Устал листать туториалы, которые не складываются в картину
У тебя в голове уже есть логрегрессии, деревья, метрики и какая-то PCA, но системного понимания всё нет?
Пора с этим разобраться!
Наш курс по классическому ML:
— научит выбирать адекватные модели под задачу
— разложит метрики, переобучение и bias по полочкам
— покажет, что скрывается за fit/predict, и что с этим делать
🔔 До 27 июля по промокоду Earlybird — минус 10.000₽
P.S. Первые 10 участников получат эксклюзивный лонгрид, чтобы начать изучать тему ещё до старта курса.
👉 Поменяй свою жизнь: старт карьеры в AI — успей до закрытия набора!
❓ Как работает async/await и зачем он нужен
Асинхронный код — неотъемлемая часть работы с веб-запросами, таймерами и файлами, но его сложность часто затрудняет понимание и поддержку.
Ранее для этого использовали коллбэки и промисы, но такие решения часто приводят к запутанному коду и трудностям с обработкой ошибок 🥲
В карточках разберем:
➖ Как async/await упрощает асинхронный код
➖ Что стоит за этим синтаксисом и как он работает
➖ Чем async/await лучше традиционных методов
🔗 Подробное руководство читаем по ссылке
🐸 Библиотека фронтендера
🧘
🐸 Библиотека фронтендера
#развлекалово
🚀 Как OpenAPI упрощает работу фронтендера
Сегодня в мире быстрого цикла разработки важно сокращать время на рутинные задачи.
OpenAPI — это не просто спецификация, а реальный инструмент для автоматизации, который позволяет ускорить большинство процессов.
Что в карточках:
➡️ Как OpenAPI ускоряет интеграцию и генерирует код
➡️ Как моки и типизация повышают точность и скорость
➡️ Инструменты для быстрой работы с OpenAPI
➡️ Роль ИИ в создании UI-прототипов по спецификации
🔗 Все примеры и подробности — в статье по ссылке
🐸 Библиотека фронтендера
😎 Топ-вакансий для фронтендеров за неделю
Senior Frontend Developer — до 380 000 ₽, удаленно (Казань)
Senior Frontend разработчик — до 250 000 ₽, офис (Москва)
Middle + Frontend-разработчик (Vue) — до 200 000 ₽, удаленно (Москва)
Frontend программист — от 200 000 до 300 000 ₽, удаленно (Москва)
Frontend-разработчик (React) — от 1500 до 2000 $
➡️ Еще больше топовых вакансий — в нашем канале Javascript jobs
🐸 Библиотека фронтендера
#свежак
🔥 Вы ещё можете застать старый добрый Proglib — с вечным доступом к курсам.
С 1 августа всё меняется: навсегда — останутся только те, кто успел купить сейчас.
-40% на все курсы. Включая обновлённый Python (кроме курса по AI-агентам)
Это не просто распродажа. Это — последняя точка входа в Proglib Academy по старым правилам.
📚 Выбрать и забрать свой курс навсегда → https://clc.to/TBtqYA
🔍 Soft skills для фронтендера
Веб-разработка требует не только технических навыков, но и умения эффективно коммуницировать, управлять задачами и работать с клиентами. Но на самом деле это так важно?
✅ Когда soft skills полезны:
— Командная синергия: четкая коммуникация помогает быстрее понять требования и избежать ошибок.
— Гибкость в сроках: грамотное общение с клиентом помогает находить компромиссы по времени и функциональности.
— Междисциплинарное сотрудничество: понимание особенностей других команд улучшает совместную работу и ускоряет процесс.
➖ Когда это не так важно:
— Фокус на коде: иногда важно просто погружаться в работу и не отвлекаться на обсуждения.
— Качество кода важнее: когда решение принято, главное — не общение, а правильная реализация.
💬 А как вы думаете? Нужны ли фронтендерам soft skills или достаточно быть крутым кодером?
Поделитесь мнением в комментариях! ✏️
🐸 Библиотека фронтендера
#междусобойчик
😅
🐸 Библиотека фронтендера
#развлекалово
🤖 Знаете, чем настоящий AI отличается от чат-бота?
Чат-бот просит перезагрузить роутер, а настоящий AI уже умеет читать ваши эмоции в чате, включать музыку под ваше настроение, контролировать погрузку руды с точностью Терминатора и даже находить на КТ-снимках то, чего не заметит человеческий глаз.
Современные компании для таких задач всё чаще используют Deep Learning — алгоритмы на основе нейросетей. Но чтобы попасть в эту лигу, нужен фундамент. И имя ему — Machine Learning.
Наш новый курс по ML — это не волшебная таблетка. Это честный и структурированный путь в мир Data Science. Мы дадим вам базу, с которой вы:
✅ разберётесь, как мыслят машины (спойлер: матрицами!);
✅ научитесь строить работающие модели, а не карточные домики;
✅ получите трамплин для прыжка в Deep Learning.
Хватит смотреть, как другие запускают ракеты. Пора строить свой собственный космодром.
Начните с фундамента на нашем курсе по Machine Learning!
🥲 Хотели новый опыт — получили новый вид боли
Сначала всё как в сказке: рендер за миллисекунду, бандл ноль, DX на десятку. А на деле — баги, костыли и ощущение, что ты не код пишешь, а фреймворк отлаживаешь за его авторов.
Вопрос от подписчика:
«Пробовал Solid — вроде быстрый, всё летает, но как только начинаешь что-то серьёзное делать, всё сыпется. Devtools нестабильные, баги вылазят на ровном месте. С Qwik вообще не понял, как с этим жить — ощущение, что дебажу не код, а магию. Marko — прикольный, но куда его вообще девать, кто его реально юзает? Есть тут кто юзал это всё в проде и не пожалел? Или всё это — больше про доклады, чем про реальные проекты?»
🧠 AI, который пишет UI вместо вас
Вышел разбор нового инструмента Dualite Alpha — это AI, который генерирует интерфейсы под любые задачи: от лендинга до канбан-доски, даже если вы не дизайнер.
Что в видео:
➡️ Как быстро собрать интерфейс под свой стек (React, Tailwind, Angular и др.)
➡️ Как загрузить макет или фото, чтобы AI превратил его в код
➡️ Как подключать API, редактировать страницы и сразу деплоить
Подойдет тем, кто хочет сэкономить время на прототипировании или быстро собрать фронт для pet-проекта.
🔗 Смотреть видео
🐸 Библиотека фронтендера
#буст
⭐️ Инструмент недели: ускоряем сборку фронтенда с Turbopack
Turbopack — новый бандлер от команды Vercel, использующий Rust для ускорения. Однако для крупных и сложных проектов стоит внимательно следить за его стабильностью, так как он все ещё в бета-версии.
Какие еще преимущества:
🔵 С каждым изменением пересобираются только те части приложения, которые изменились, а не весь проект.
🔵 Улучшает работу как с клиентскими, так и серверными компонентами в Next.js.
🔵 Благодаря Hot Module Replacement (HMR) изменения в коде моментально отображаются без перезагрузки страницы, что важно для динамичных интерфейсов.
🔵 Совместим с большинством плагинов Webpack, что упрощает переход. Вы можете продолжить использовать привычные плагины и настройки, но с улучшенной производительностью.
Как использовать:
1. Установите Turbopack:
npm install --save-dev turbopack
npm run dev -- --turbo
😎 Топ-вакансий для фронтендеров за неделю
Разработчик JavaScript/TypeScript — до 240 000 ₽, удаленно (Москва)
Frontend-разработчик — от 150 000 до 180 000 ₽, удаленно (Москва)
Frontend Vue & Developer Middle++ — от 2000 до 2500 $, удаленно (ОАЭ)
Senior JavaScript developer — от 290 000 ₽, удаленно (Москва)
Frontend Team Lead — от 350 000 до 400 000 ₽, удаленно (Краснодар)
➡️ Еще больше топовых вакансий — в нашем канале Javascript jobs
🐸 Библиотека фронтендера
#свежак
📌 Подборка статей о Call Stack и микрозадачах
Погружаемся в движок JavaScript: от детальных визуализаций до официальных гайдов Mozilla.
❌ dlrnjstjs/javascript-asynchronous-event-loop-deep-dive-call-stack-task-queue-microtask-queue-540f206509d4">JavaScript Asynchronous Event Loop Deep Dive — детальный разбор трех ключевых компонентов: Call Stack, Task Queue (макрозадачи) и Microtask Queue, с визуализациями и примерами кода.
❌ Visualizing How JavaScript Really Works Behind the Scenes — иллюстрированное объяснение порядка выполнения синхронного кода, микрозадач и макрозадач.
❌ queueMicrotask() в JavaScript: как и зачем использовать — разбор функции для добавления задачи в очередь микрозадач, кейсы применения и преимущества перед setTimeout(..., 0).
❌ In depth: Microtasks and the JavaScript runtime environment — роль микрозадач (Promise, MutationObserver) и их взаимодействие с контекстами выполнения.
❌ How the Event Loop Handles Microtasks and Macrotasks — пошаговое описание цикла Event Loop: сначала все микрозадачи, а уже затем макрозадачи, с примерами «ловушек» асинхронного кода.
🐸 Библиотека фронтендера
#свежак
💬 Общие чаты в команде: за и против
Slack, Telegram, Discord — рабочие чаты стали центром всего: задачи, баги, апдейты, мемы. Удобно… пока не превращается в постоянный шум и расфокус.
🔘 Что удобно:
— Быстро решить вопрос без созвонов
— Видно, кто чем занят
— Меньше митингов, больше живого контекста
— Держит команду в тонусе
🔘 Что бесит:
— Поток отвлечений не прекращается
— Важное тонет в болтовне
— Нарушает фокус и deep work
— Появляется тревожка «а вдруг я что-то пропустил»
Чаты работают, когда в них есть правила: меньше @all, больше тредов, без лишнего шума — и никто не сходит с ума.
❓А как у вас: общие чаты помогают или выматывают? Расскажите, как вы с этим справляетесь👇
🐸 Библиотека фронтендера
#междусобойчик
🌀 Фишка инструмента Reactime
Reactime — это расширение для Chrome, которое позволяет визуально отслеживать, как меняется состояние приложения, какие компоненты ререндерятся и что запускает useEffect.
Это как DevTools, но с акцентом на время, зависимости и жизненный цикл.
Чем полезен:
➡️ Показывает, когда и какой компонент обновился, что именно вызвало ререндер, как изменилась структура дерева
➡️ Можно наглядно увидеть, как срабатывают useState, useReducer и useEffect — когда и с какими значениями
➡️ Reactime позволяет перемещаться между состояниями и наблюдать, как UI реагирует на изменения — удобно для отладки сложных состояний
Как начать:
1. Установите расширение
2. Откройте React-приложение в режиме разработки
3. Перейдите во вкладку Reactime в DevTools и начните взаимодействие с UI
4. Следите за рендерингом, изменениями стейта и запуском эффектов
📌 Особенно полезно, когда вы ловите баги в зависимости от useEffect, ломаете голову над повторными рендерами или хотите понять, как работает цепочка обновлений в приложении.
🐸 Библиотека фронтендера
#буст
🍿 Как настроить Source Maps и отладку в продакшене
Source Maps позволяют отлаживать минифицированный код, показывая исходники в DevTools.
Почему важно:
📍 Упрощает отладку ошибок в продакшене
📍 Сохраняет имена файлов и строки из исходного кода
📍 Помогает находить баги без доступа к исходникам на сервере
Как настроить:
1. Включаем генерацию Source Maps в сборщике:
➡️ Webpack:
module.exports = {
devtool: 'source-map', // или 'hidden-source-map' для продакшена
mode: 'production',
};
export default {
build: {
sourcemap: true, // true или 'hidden'
}
}
module.exports = {
productionBrowserSourceMaps: true,
};
sentry-cli releases files your-release upload-sourcemaps ./dist --url-prefix '~/static/js’
🖥️ Уточнение требований к компоненту
При создании компонента на React важно чётко сформулировать требования, чтобы ускорить процесс разработки и избежать недоразумений. Уточнение для компонента с задачами поможет правильно организовать структуру и не упустить важные детали.
Промпт:
Создай компонент на React, который отображает список задач с возможностью добавления, удаления и изменения статуса. Используй Zustand для управления состоянием. Компонент должен быть адаптивным и поддерживать темную тему.
⭐️ Упрощаем валидацию и типизацию с помощью Zod
Zod — библиотека для TypeScript, которая позволяет описывать схемы данных, валидировать их и сразу получать типы — без дублирования кода.
Почему это удобно:
➡️ Схема данных работает и как валидатор, и как источник типов через z.infer. Один раз описали — используете везде.
➡️ Zod использует декларативный синтаксис. Пример:
const User = z.object({
id: z.number(),
name: z.string(),
email: z.string().email()
})
npm install zod
const Product = z.object({
title: z.string(),
price: z.number().positive()
})
const result = Product.safeParse(input)
if (!result.success) {
console.error(result.error)
}
type Product = z.infer<typeof Product>
😶 Задача: интерфейс реагирует не так, как ожидалось
Вы получаете баг-репорт:«Кнопка ‘Продолжить’ не нажимается в Safari на iOS, хотя в других браузерах всё работает.»
Проверяете верстку и видите, что кнопка абсолютно позиционирована внутри div, у которого z-index: 10. Поверх неё расположен прозрачный div (opacity: 0, z-index: 20, pointer-events: auto).
Что с наибольшей вероятностью мешает клику по кнопке ❓
🐸 Библиотека фронтендера
#междусобойчик
📌 Lighthouse под капотом
Актуальные статьи для тех, кто не просто запускает Lighthouse, а понимает, как он работает внутри.
1. Web Perf в 2025: дальше, чем Lighthouse
➡️ Как современные фреймворки (Qwik, Astro) обходят классические проблемы TBT и LCP через островную архитектуру. Почему просто «100 баллов» больше не спасает.
2. Lighthouse 2025: полный редизайн
➡️ Chrome 137+ перейдёт на модуль Lighthouse Insights. Старые SEO-аудиты и части performance метрик заменят более гибкой архитектурой.
3. Что поменяют в Lighthouse-аудитах
➡️ Объединят CLS‑Culprits, уберут устаревшие проверки вроде passive listeners. Плюс подробный таймлайн изменений.
4. Что важно знать SEO и фронту
➡️ SearchEngineJournal объясняет, как изменения Lighthouse повлияют на ваши метрики и CI-пайплайны.
5. Локальные тесты с Lighthouse в CI
➡️ Гайд от NitroPack: как гонять Lighthouse через npm, настраивать кастомные аудиты и встраивать в CI/CD.
🐸 Библиотека фронтендера
#свежак
🔥 Знакомьтесь, преподаватель нашего нового курса по ML — Мария Жарова.
В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️
А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.
👉 Записывайтесь на курс
🚀 Что нового в Vue
Недавние изменения в экосистемах Vue и Nuxt открывают новые возможности для разработчиков и делают их инструменты ещё более мощными и гибкими.
В карточках разберем:
➡️ Как Vercel приобрел NuxtLabs и что это значит для проекта
➡️ Какие новые возможности для open-source команд теперь доступны в Nuxt
➡️ Что нового в Nuxt 3.17.7 и как он движется к стабильной версии Nuxt 4
➡️ Как Vapor mode в Vue 3.6 улучшает производительность и уменьшает размер бандла
🔗 Полный текст статьи — по ссылке
🐸 Библиотека фронтендера
📌 Команда дня: временное сохранение изменений в git
Позволяет спрятать незакоммиченные изменения, переключиться на другую ветку, а потом вернуть их обратно.
git stash
git stash push -m «фиксы верстки в header»
git stash pop
git stash list
git stash show -p
git checkout stash@{0} -- path/to/file
git stash drop stash@{0}
🗂 Все нужные Телеграм-каналы для тестировщика
🚩Общие
🟠@qarocks - статьи, дайджесты, видео, книги
🟠@qasobes - вопросы на собеседовании QA и ответы на них
🟠@cozyqa - новости QA, полезные советы, подборки материалов
🚩Автоматизация
🟠@automatedqa - справочник материалов по автоматизации тестирования
🚩Поиск работы
🟠 @qajoboffer
🟠 @jobforqa
🟠 @qajobsoffers
🟠 @rabotadlaqa
🚩Книги
🟠@libqa - книги по тестированию на русском и английском языках
🚩Юмор
🟠@qahumor - мемы, связанные с тестированием и разработкой ПО в целом
🚩ЧАТЫ:
🟠@qajobsru - чат с вакансиями и их обсуждениями
Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2VtzqvtayLj
😂😂
🐸 Библиотека фронтендера
#развлекалово
❓ Вопросы по методам call, apply и bind в JS
На собеседованиях вам может попасться вопрос о различиях между методами call, apply и bind. Эти методы позволяют управлять контекстом this, но их поведение отличается.
В карточках разберем:
➡️ Как работает метод call
➡️ В чем отличие метода apply
➡️ Когда и зачем использовать bind
Важно знать, когда и какой метод использовать для корректной работы с функциями ‼️
🐸 Библиотека фронтендера