Навык приходит с практикой
Меньше сомнений.
Больше кода.
Задачи на конкретные навыки.
Пиши решение, проверяй примеры, получай XP.
Как выполняется JavaScript
Отделяйте возможности языка от API браузера и Node.js.
Не начатаЗначения и переменные
Различайте const и let, работайте с числами и шаблонными строками.
Не начатаЧисла, операторы и точность
Освойте арифметику, преобразования, NaN и расчёты в целых копейках.
Не начатаСтроки и Unicode
Научитесь преобразовывать текст, учитывать Unicode и не изменять исходные строки.
Не начатаУсловия и сравнения
Стройте ветвления и различайте строгое равенство и приведение типов.
Не начатаЦиклы и перебор данных
Стройте завершающиеся циклы и выбирайте правильный способ перебора.
Не начатаФункции и область видимости
Передавайте аргументы, возвращайте значения и используйте замыкания.
Не начатаМассивы и преобразования
Используйте map, filter и reduce для обработки коллекций.
Не начатаОбъекты и деструктуризация
Читайте свойства, копируйте объекты и применяйте optional chaining.
Не начатаMap и Set
Убирайте дубликаты и разделяйте код на модули с явными зависимостями.
Не начатаЗамыкания и this
Разберите лексическое окружение, независимые замыкания и привязку this.
Не начатаПрототипы и классы
Поймите прототипную цепочку, методы классов и границы инкапсуляции.
Не начатаМодули и организация проекта
Освойте import/export, CommonJS, разрешение путей и публичные границы модулей.
Не начатаОшибки и надёжный JSON
Обрабатывайте исключения и отделяйте некорректные данные от корректных.
Не начатаПромисы и async/await
Пишите асинхронные функции и запускайте независимые операции вместе.
Не начатаEvent loop и конкурентность
Проследите стек вызовов, задачи, микрозадачи и порядок асинхронных действий.
Не начатаDOM и построение интерфейса
Стройте DOM-деревья, безопасно вставляйте текст и обновляйте интерфейс.
Не начатаСобытия и формы
Обрабатывайте события, формы и делегирование без дублирования обработчиков.
Не начатаFetch, HTTP и отмена запросов
Разделяйте сетевой сбой, HTTP-ошибку, разбор ответа и отмену операции.
Не начатаХранение состояния в браузере
Храните и восстанавливайте состояние с версией формата и обработкой повреждённых данных.
Не начатаДаты и регулярные выражения
Работайте с датами, часовыми поясами и проверяйте строки регулярными выражениями.
Не начатаТестирование и итоговый проект
Пишите проверки поведения, различайте уровни тестов и соберите итоговый проект.
Не начатаТипы и вывод TypeScript
Добавляйте статические контракты без потери вывода типов.
Не начатаUnion и сужение типов
Обрабатывайте несколько типов безопасными ветвлениями.
Не начатаИнтерфейсы и optional-свойства
Описывайте форму объектов и значения по умолчанию.
Не начатаТипизация функций
Опишите параметры, результаты, callbacks и допустимые формы вызова.
Не начатаМассивы, кортежи и литералы
Различайте произвольный массив, кортеж, readonly и литеральные ограничения.
Не начатаОбобщённые функции
Сохраняйте связь между типом входа и результата.
Не начатаkeyof и индексный доступ
Свяжите ключ объекта с типом его значения без потери информации.
Не начатаUtility types и неизменяемость
Используйте Pick, Omit, Partial и Record на границах данных.
Не начатаMapped и conditional types
Стройте связанные типы с mapped, conditional, infer и шаблонными литералами.
Не начатаunknown и runtime-проверки
Проверяйте неизвестные данные до использования.
Не начатаКлассы и структурная совместимость
Сравните контракты экземпляров, implements, модификаторы доступа и runtime-поля.
Не начатаМодули, tsconfig и сборка
Настройте strict-проверку, модули, декларации и разделение типов и значений.
Не начатаNode.js, HTTP и первый сервер
Разберите HTTP-запрос и ответ и создайте Express-приложение без смешивания с запуском порта.
Не начатаМаршруты Express
Создайте HTTP-маршрут и верните JSON-ответ.
Не начатаПорядок middleware
Подготовьте данные перед обработчиком и передайте управление.
Не начатаRouter и параметры
Собирайте маршруты в модули и валидируйте параметры пути.
Не начатаQuery, пагинация и фильтры
Проверяйте query-параметры как недоверенные данные и стройте предсказуемую пагинацию.
Не начатаВалидация HTTP-ввода
Проверяйте req.body и возвращайте корректные статусы.
Не начатаREST и CRUD-ресурсы
Согласуйте методы HTTP, статусы, идентификаторы и жизненный цикл REST-ресурса.
Не начатаОбработка ошибок Express
Направляйте ошибки в централизованный обработчик.
Не начатаАсинхронные обработчики Express 5
Используйте Promise-ошибки Express 5 и корректно связывайте асинхронную работу с запросом.
Не начатаСлои и зависимости API
Отделите HTTP, сценарий и хранилище; передавайте зависимости явно.
Не начатаСессии, права и безопасный ввод
Разделите идентификацию, проверку прав, ограничения ввода и защиту cookie-запросов.
Не начатаИнтеграционные тесты API
Проверяйте HTTP-контракт Supertest, изоляцию состояния и отрицательные сценарии.
Не начатаCLI и первый проект NestJS
Создайте проект CLI и проследите запуск Nest-приложения до HTTP-ответа.
Не начатаМодули NestJS
Собирайте возможности приложения в связанные feature-модули.
Не начатаDependency Injection
Заменяйте конкретные реализации через токены провайдеров.
Не начатаКонтроллеры и сервисы
Разделяйте HTTP-представление и сценарии приложения.
Не начатаDTO и ValidationPipe
Проверяйте входные DTO во время исполнения.
Не начатаПреобразование параметров и pipes
Преобразуйте и проверяйте параметры до вызова сценария.
Не начатаGuards и авторизация
Проверяйте права до выполнения обработчика.
Не начатаМетаданные и свои декораторы
Свяжите метаданные маршрута с Reflector и проверкой доступа.
Не начатаInterceptors и RxJS
Оборачивайте обработку запроса и преобразуйте Observable результата.
Не начатаИсключения и filters
Преобразуйте исключения в единый безопасный HTTP-контракт.
Не начатаКонфигурация и окружения
Проверяйте конфигурацию при запуске и внедряйте типизированные настройки.
Не начатаРепозитории, БД и транзакции
Разделите сценарии и хранилище, изучите транзакции и конфликты конкурентных записей.
Не начатаТесты и подмена зависимостей
Собирайте TestingModule и заменяйте реальные зависимости контролируемыми doubles.
Не начатаПорядок обработки и завершение
Проследите порядок обработки запроса и корректно освобождайте ресурсы приложения.
Не начата