131 статей для Middle Frontend-разработчика: большая подборка
Статьи для самостоятельной разработки интерфейсов: JavaScript и TypeScript, React, Vue, Angular, формы, API, тестирование, сборка и производительность.
JavaScript, браузер и сеть
- Грамматика и типы
Чтобы добавлять интерфейсу логику и интерактивность.
- Порядок выполнения и обработка ошибок
Чтобы добавлять интерфейсу логику и интерактивность.
- Циклы и итерации
Чтобы добавлять интерфейсу логику и интерактивность.
- Функции
Чтобы разбивать логику на повторяемые действия.
- Выражения и операторы
Чтобы добавлять интерфейсу логику и интерактивность.
- Числа и даты
Чтобы добавлять интерфейсу логику и интерактивность.
- Упорядоченные наборы данных
Чтобы добавлять интерфейсу логику и интерактивность.
- Коллекции
Чтобы добавлять интерфейсу логику и интерактивность.
- Работа с объектами
Чтобы добавлять интерфейсу логику и интерактивность.
- Наследование и цепочка прототипов
Чтобы добавлять интерфейсу логику и интерактивность.
- Использование промисов
Чтобы добавлять интерфейсу логику и интерактивность.
- Итераторы и генераторы
Чтобы добавлять интерфейсу логику и интерактивность.
- Мета-программирование
Чтобы добавлять интерфейсу логику и интерактивность.
- Регулярные выражения
Чтобы добавлять интерфейсу логику и интерактивность.
- Типизированные массивы JavaScript
Чтобы хранить и обрабатывать наборы данных.
- Модули JavaScript
Чтобы добавлять интерфейсу логику и интерактивность.
- Типы и структуры данных JavaScript
Чтобы добавлять интерфейсу логику и интерактивность.
- Операторы сравнения
Чтобы добавлять интерфейсу логику и интерактивность.
- Замыкания
Чтобы управлять областью видимости данных.
- Роадмэп по современному фронтенду от KTS
Чтобы добавлять интерфейсу логику и интерактивность.
- Асинхронное программирование в JavaScript (Callback, Promise, RxJs )
Чтобы выполнять долгие операции без зависания.
- JavaScript однопоточный или многопоточный? Ставим точку
Чтобы добавлять интерфейсу логику и интерактивность.
- Ты наконец-то поймешь асинхронность в JS
Чтобы выполнять долгие операции без зависания.
- Среда выполнения JavaScript простым языком: движок, Event Loop и очереди задач
Чтобы добавлять интерфейсу логику и интерактивность.
- Event Loop. Мифы и реальность
Чтобы добавлять интерфейсу логику и интерактивность.
- Аутентификация для WebSocket и SSE: до сих пор нет стандарта?
Чтобы добавлять интерфейсу логику и интерактивность.
- Асинхронный веб: WebSocket, Server-Sent Events, Long Polling и Short Polling
Чтобы выполнять долгие операции без зависания.
- Анатомия WebSocket: человечный разбор RFC 6455
Чтобы добавлять интерфейсу логику и интерактивность.
- WebSocket и SSE просто, для собеседований и не только
Чтобы добавлять интерфейсу логику и интерактивность.
TypeScript и моделирование данных
- Продвинутый TypeScript
Чтобы находить ошибки типов до запуска.
- Дженерики в TypeScript
Чтобы находить ошибки типов до запуска.
- TypeScript тип any против всех
Чтобы находить ошибки типов до запуска.
- Учимся писать сложные Typescript типы на примере роутинга в React
Чтобы собирать интерфейс из переиспользуемых компонентов.
- TypeScript и все что тебе нужно в разработке
Чтобы находить ошибки типов до запуска.
- Копаемся в TypeScript: пишем свои Utility Types. Ключевое слово infer
Чтобы находить ошибки типов до запуска.
- Очередная статья про систему типов TypeScript
Чтобы находить ошибки типов до запуска.
- TypeScript в React-приложениях. 4. Глубокая типизация
Чтобы собирать интерфейс из переиспользуемых компонентов.
- TypeScript: infer и conditional types. Продвинутый TS на примерах
Чтобы находить ошибки типов до запуска.
- Typescript Generics
Чтобы находить ошибки типов до запуска.
- Рецепты TypeScript: подстановка параметров в путь
Чтобы находить ошибки типов до запуска.
- Рецепты TypeScript: перевод ключей объекта в camelCase
Чтобы находить ошибки типов до запуска.
- Type-level программирование в TypeScript: практические кейсы и обзор возможностей
Чтобы находить ошибки типов до запуска.
- 12 советов по внедрению TypeScript в React-приложениях
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Рекомендации по работе с TypeScript
Чтобы находить ошибки типов до запуска.
- Искусство типизации: TypeScript Utility Types
Чтобы находить ошибки типов до запуска.
- Типы или интерфейсы в TypeScript: что и когда использовать?
Чтобы находить ошибки типов до запуска.
React: компоненты, хуки и состояние
- Автоматизируем переход на React Hooks
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Запрос к API c React Hooks, HOC или Render Prop
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Redux store vs React state
Чтобы собирать интерфейс из переиспользуемых компонентов.
- В чем разница между useLayoutEffect, componentDidMount, useEffect
Чтобы создавать интерфейсы из переиспользуемых компонентов.
- React: Zustand State Manager
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Хуки в React — как надо, когда не надо и нужны ли свои?
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Callback рефы в React: что это такое и где можно применять
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Нужен ли здесь `useEffect`? 12 сценариев из React-код-ревью — от производного состояния до React 19.2
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Улучшаем дизайн React приложения с помощью Compound components
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Улучшаем качество кода React-приложения с помощью Compound Components
Чтобы собирать интерфейс из переиспользуемых компонентов.
- React hooks, как не выстрелить себе в ноги. Часть 3.2: useMemo, useCallback
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Как мемоизация влияет на производительность React-приложения
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Взгляд с другой стороны на useMemo, useCallback и React.memo в React: когда их стоит использовать
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Использование Context API в React для создания глобальной темы приложения
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Dependency Injection в React — максимально просто
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Управление состоянием в React приложениях
Чтобы собирать интерфейс из переиспользуемых компонентов.
- React Context
Чтобы собирать интерфейс из переиспользуемых компонентов.
- 20 частых антипаттернов в React и как их исправить: кратко, понятно, без мифов
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Оптимизация React-приложений: Используем useTransition, useDeferredValue и useOptimistic для плавного UI
Чтобы собирать интерфейс из переиспользуемых компонентов.
Формы, валидация и загрузка файлов
- Разработка сложных форм с React Hook Form
Чтобы собирать интерфейс из переиспользуемых компонентов.
- React Hook Form: создание сложных форм для начинающих
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Работа с массивами в формах(динамическое добавление полей) с использованием библиотеки react-hook-form
Чтобы хранить и обрабатывать наборы данных.
- Год с React Hook Form и Zod: меньше кода, но не без нюансов
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Попытка создать идеальный компонент формы
Чтобы собирать и проверять пользовательские данные.
- Создание простого хука для работы с формами в React на основе `zod`
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Steroids Form — как создать собственный движок форм для React
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Формы как контракт в Next.js: Zod, fieldErrors и одинаковые правила на client и server
Чтобы собирать и проверять пользовательские данные.
- Разрабатываем универсальную форму на React и XState или новые приключения конечного автомата
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Загрузчик файлов для React
Чтобы собирать интерфейс из переиспользуемых компонентов.
Vue: компоненты и реактивность
- Сравнение синтаксисов Vue JS
Чтобы собирать реактивные интерфейсы на Vue.
- Миграция с vue-class-component на vuejs/composition-api
Чтобы собирать реактивные интерфейсы на Vue.
- Миграция на Vue 2.7
Чтобы собирать реактивные интерфейсы на Vue.
- defineExpose() в Vue 3
Чтобы собирать реактивные интерфейсы на Vue.
- Функция Reactive во Vue: как это работает
Чтобы разбивать логику на повторяемые действия.
- Есть много способов сделать это: Vue 3 и взаимодействие компонентов
Чтобы собирать реактивные интерфейсы на Vue.
- Реактивность в Vue
Чтобы собирать реактивные интерфейсы на Vue.
- Сайд эффект реактивности и апдейта компонента во Vue 3
Чтобы собирать реактивные интерфейсы на Vue.
- Vue 3 под капотом и тонкости Composition API: Reactivity, Provide/Inject, Suspense
Чтобы собирать реактивные интерфейсы на Vue.
- Vue 3: Почему ref() — это новая ссылка, а reactive() — обёртка?
Чтобы собирать реактивные интерфейсы на Vue.
- Vue Teleport: как работает
Чтобы собирать реактивные интерфейсы на Vue.
- Рендер-функции и Teleport в Vue.js
Чтобы разбивать логику на повторяемые действия.
- ReactiveEffect во Vue 3: что на самом деле исполняет вашу реактивность
Чтобы собирать реактивные интерфейсы на Vue.
- Значение поменялось, а экран нет: где Vue теряет реактивность и почему это не баг
Чтобы собирать реактивные интерфейсы на Vue.
Angular и RxJS
- Angular: создание кастомного элемента формы и передача в него состояния формы
Чтобы разрабатывать крупные приложения на Angular.
- Как управлять состоянием в Angular по мере роста приложения
Чтобы разрабатывать крупные приложения на Angular.
- Angular — API композиции директив
Чтобы разрабатывать крупные приложения на Angular.
- Прощай, Zone.js: ускоряем Angular с Signal API и Zoneless-подходом
Чтобы разрабатывать крупные приложения на Angular.
- Angular: Создаем multiple checkbox компонент, который подойдет для повторного использования
Чтобы разрабатывать крупные приложения на Angular.
- Построение компонентов с выпадающими блоками с помощью Angular и Material CDK
Чтобы разрабатывать крупные приложения на Angular.
- Angular: ng-content для ng-template
Чтобы разрабатывать крупные приложения на Angular.
- Разработка Angular-приложений и построение их архитектуры
Чтобы разрабатывать крупные приложения на Angular.
- Angular. Работа с template-driven формами
Чтобы разрабатывать крупные приложения на Angular.
- Zoneless Angular 18
Чтобы разрабатывать крупные приложения на Angular.
- Docker для Angular-приложений: от простого к несложному
Чтобы одинаково запускать приложение в любой среде.
- Как использовать менеджер состояний NgRx для Angular-проектов
Чтобы разрабатывать крупные приложения на Angular.
- Что такое инкрементальная гидратация в Angular
Чтобы разрабатывать крупные приложения на Angular.
- Angular сегодня: ключевые изменения последних лет
Чтобы разрабатывать крупные приложения на Angular.
- 5 RxJS операторов в Angular, которые решают 80% проблем
Чтобы разрабатывать крупные приложения на Angular.
Тестирование
- Реализация функции обнаружения
Чтобы разбивать логику на повторяемые действия.
- Эффективное тестирование верстки
Чтобы находить ошибки до выпуска продукта.
- Тестирование с Ava.js
Чтобы находить ошибки до выпуска продукта.
- Анализируем виды тестов для Frontend
Чтобы находить ошибки до выпуска продукта.
- Тестирование Frontend
Чтобы находить ошибки до выпуска продукта.
- Playwright: веб-тестирование без драмы
Чтобы находить ошибки до выпуска продукта.
- End-to-end тестирование React приложения с помощью Playwright
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Playwright: игра в скриншотные тесты
Чтобы находить ошибки до выпуска продукта.
- Быстрый старт автотестирования с Playwright
Чтобы находить ошибки до выпуска продукта.
- Playwright не спасает от флапающих тестов: разбираемся, как он ждёт на самом деле
Чтобы находить ошибки до выпуска продукта.
- Пишем собственные React-хуки на TypeScript и тестируем их с React Testing Library (часть 1)
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Как я начал писать unit-тесты для Vue. Part deux: год спустя…
Чтобы находить ошибки до выпуска продукта.
- Юнит-тестирование для веб-разработчиков: концепции и аспекты, которых не найти в документации
Чтобы находить ошибки до выпуска продукта.
- Тест зелёный, фича сломана: семь случаев, когда проверка совпала по неверной причине
Чтобы находить ошибки до выпуска продукта.
- Как тестировать современный фронтенд
Чтобы находить ошибки до выпуска продукта.
Сборка и инструменты
- Webpack 5 — Asset Modules
Чтобы настроить сборку и оптимизацию фронтенда.
- TypeScript для конфигурации WebPack (FE and BE)
Чтобы находить ошибки типов до запуска.
- Миграция с Webpack и react-scripts на Vite: Путь к Быстрому и Легковесному React
Чтобы собирать интерфейс из переиспользуемых компонентов.
- Переход с Vue-CLI и Webpack на Vite: ускоряем разработку Vue 3
Чтобы настроить сборку и оптимизацию фронтенда.
- Пишем свой плагин для Webpack
Чтобы настроить сборку и оптимизацию фронтенда.
- Сборщики Frontend и когда их применять
Чтобы настроить сборку и оптимизацию фронтенда.
- Не спешите выкидывать Webpack: разбор альтернатив и реальных сценариев миграции
Чтобы настроить сборку и оптимизацию фронтенда.
Производительность и рост
- Улучшаем производительность: виртуальный рендеринг для больших объемов данных
Чтобы находить узкие места и ускорять систему.
- Улучшаем производительность сайта с помощью CSS
Чтобы находить узкие места и ускорять систему.
- Как на практике работать над перфомансом веб-приложения: опыт Авто.ру
Чтобы находить узкие места и ускорять систему.
- Не JavaScript’ом единым: как фронтенд-разработчику затащить на собесе
Чтобы находить узкие места и ускорять систему.
Планирование разработки
- Планирование проекта
Чтобы выбрать приоритеты и согласовать действия.