
-
За 2 месяца обучения на курсе вы:
- овладеете асинхронным программированием
- повысите производительность серверных приложений
- попрактикуете техники для бесперебойной интеграции фронтенд- и бекенд-частей на JavaScript
- научитесь строить масштабируемые приложения, которые будут выдерживать большую нагрузку
- изучите ключевые библиотеки и фреймворки Node.js, такие как Express.js -
В результате разработаете собственное приложение, которое сможете добавить в свой профиль на GitHub.
В ПРОГРАММУ КУРСА ВХОДЯТ:
-
КОМПЛЕКСНАЯ РАБОТА С NODE.JS В течение курса вы полностью овладеете Node.js — от знакомства с базовым функционалом до работы с фреймворками, серверами и современными инструментами.
-
BEST PRACTICES На курсе овладеем лучшими практиками разработки на Node.js: уделим время асинхронному программированию, работе с базами данных и безопасности инфраструктуры.
-
КУРСОВОЙ ПРОЕКТ В конце курса презентуете курсовой проект – разработаете собственное приложение, которое впоследствии сможете добавить в свой профиль на GitHub.
-
БОНУСНЫЙ БЛОК Для студентов, еще не работавших с JavaScript или желающих освежить знания этого языка, мы добавили в курс бонусный блок с основами JS, состоящий из 4 занятий.
ЛЕКТОР:
Сергей
Ващенко
- Senior Software Developer в RBC (Royal Bank of Canada)
- 7+ лет опыта в Fullstack-разработке
- имеет сертификации Stanford, CISCO, Linux, AWS
- имеет опыт работы с highload-проектами: разработал аналог Jira для децентрализации команд
- интегрировал Bluetooth с механизмом чтения кодов для проекта на > 1.000.000 юзеров
- успешно внедрил изменения с использованием Scrum Framework в технологическом стеке, охватывающем Angular, Node.js, Python, GoLang
ПРОГРАММА
-
00
Бонусный блок. JavaScript
Результаты: поймете основы JavaScript, типы данных, циклы, условные конструкции и работу с объектами. Научитесь использовать асинхронный код (callback-функции, промисы, async/await) и разберетесь, как работает Event Loop. Освоите основы ООП в JavaScript, в частности классы, наследование и модификаторы доступа.
- Знакомство с JavaScript. Part 1
- Знакомство с JavaScript. Part 2
- Асинхронность. Part 1
- Классы
-
01
Node.js: задачи и основные концепции
- узнаете об основных преимуществах Node.js
- установите и настроите рабочую среду Node.js с помощью JetBrains WebStorm
-
02
Архитектура программы Node.js. Начало работы с Node.js
- сможете улучшить код с помощью линтеров JSLint и ESLint
- узнаете преимущества TypeScript в Node.js
- будете уметь мотивированно выбирать фреймворк для работы, учитывая особенности и преимущества каждого
-
03
Основы работы с сервером
- узнаете о работе с НТТР и статус-кодах
- научитесь читать, записывать, изменять и работать с директориями в файловой системе с помощью модуля fs
- выясните, как компоненты взаимодействуют между собой в Even-Driven Architecture
-
04
Docker для Node.js
- узнаете, как Docker изолирует программы с зависимостями и обеспечивает стабильную работу в любой среде
- научитесь создавать собственные Docker-образы с помощью Dockerfile и запускать контейнеры на основе готовых шаблонов
- автоматизируете развертывание многоконтейнерных приложений с Docker Compose, которое упростит настройку сложных сред
-
05
Express.js
- узнаете, в чем особенности Express.js, его преимущества и ограничения
- научитесь работать с одним из самых популярных фреймворков для Node.js и применять его на практике
- создадите базовую структуру приложений с помощью Express.js
-
06
Введение в TypeScript и основы NestJS
- узнаете, какие возможности открывает TypeScript, его преимущества, ограничения и влияние на качество кода
- научитесь работать со статической типизацией и использовать ее для предотвращения ошибок в коде
- освоите интерфейсы, generics, enums, utility types и декораторы для построения гибкой архитектуры
- примените TypeScript в реальных проектах и научитесь работать с NestJS для бэкенд-разработки
-
07
Продвинутый NestJS: архитектура и оптимизация
- научитесь строить модульную архитектуру, организуя логику на модули, сервисы и контроллеры
- автоматизируете управление зависимостями Dependency Injection (DI) и научитесь использовать middleware для обработки запросов перед контроллерами
- реализуете Guards для контроля доступа (аутентификация, роли) и Pipes для валидации и трансформации данных
-
08
Антипаттерны проектирования
- узнаете, как антипаттерны влияют на качество кода и как их избегать, чтобы писать чистый и поддерживаемый код
- научитесь находить типичные проблемы серверного программирования, такие как неоптимальная передача параметров, Nested Hell и чрезмерное количество логов
- автоматизируете процесс оптимизации кода, чтобы улучшить обработку JSON, циклов, SQL-запросов и ошибок
- примените принципы рефакторинга и научитесь распознавать базовые практики, которых стоит избегать
-
09
Асинхронность
- узнаете, что такое асинхронность и в каких случаях стоит использовать асинхронный подход
- научитесь управлять событиями с помощью EventEmitter для эффективной работы с потоками данных
- автоматизируете асинхронные процессы благодаря best practices и будете избегать распространенных ошибок в коде
-
10
Реактивное программирование: WebSocket, модуль fs и Selenium
- узнаете, как работает реактивное программирование и когда его стоит применять
- научитесь пользоваться WebSocket для обмена данными в реальном времени
- автоматизируете тестирование с Selenium и оптимизируете работу с файловой системой через модуль fs
- сможете эффективно управлять событиями с помощью EventEmitter и работать с RxJS
-
11
Работа с базами данных. Часть 1
- узнаете основы реляционных баз данных (RDBMS) и принципы их работы
- научитесь различать SQL и NoSQL и выбирать оптимальный подход для проектов
- разберетесь в концепциях реляций и базовых принципах построения баз данных
-
12
Работа с базами данных. Часть 2
- узнаете, как работают SQL Joins и их виды для эффективной работы со связанными таблицами
- научитесь использовать процедуры в базах данных для оптимизации запросов
- разберетесь в нормализации данных для построения логической и эффективной структуры баз данных
- освоите принципы ACID-транзакций, гарантирующие надежность работы с данными
-
13
Работа с базами данных. Часть 3
- узнаете, как работают транзакции и уровни их изоляции (Read Uncommitted, Read Committed, Repeatable Read)
- научитесь пользоваться TypeORM в NestJS для эффективной работы с базами данных
- освоите подход Code First для создания структур баз данных непосредственно в коде
-
14
Нереляционные базы данных
- узнаете, как эффективно использовать MongoDB, Redis и Cassandra в проектах на Node.js
- научитесь работать с Mongoose для удобного взаимодействия с MongoDB
-
15
Message Brokers
- узнаете, что такое Message Broker и какую роль он играет в системах с высокой нагрузкой
- научитесь работать с RabbitMQ с использованием обменников, очередей, маршрутизации и подтверждений сообщений
- освоите основы Apache Kafka, в частности темы, партиции, продюсеров и консумеров
- поймете, чем отличаются RabbitMQ и Apache Kafka и где их стоит применять
-
16
Размещение и развертывание приложения
- узнаете, как устроен типичный GitHub pipeline и как его настроить
- научитесь работать с ветками (branches) и тестировать код в среде Node.js
- освоите различные методы релиза ПО и поймете, какой подходит для вашего проекта
-
17
Облачные технологии
- научитесь работать с AWS, в частности разбираться в регионах, зонах доступности и вычислительных ресурсах
- освоите AWS Cognito для управления аутентификацией и авторизацией пользователей, а также AWS для хранения и обработки файлов
- выясните, в чем отличия AWS, GCP и Azure, и сможете выбирать правильную платформу для проекта
-
18
Контейнеризация и DevOps
- узнаете, как работает оркестрация контейнеров и какие ключевые возможности предоставляет Kubernetes
- научитесь управлять инфраструктурой через мастер-узлы (АРІ-сервер, контроллеры, etcd) и рабочие узлы (kubelet, kube-proxy)
- освоите работу с Pod и ReplicaSet для масштабирования и поддержки нужного количества контейнеров
- выясните, как работают Deployment для непрерывных обновлений и Service (ClusterIP, NodePort, LoadBalancer) для соединения Pod с пользователями
-
19
Логирование и тестирование
- узнаете, какие существуют типы тестирования и когда их следует применять
- научитесь работать по подходам TDD (Test-Driven Development) и BDD (Behavior-Driven Development) для улучшения процесса разработки
- овладеете best practices в тестировании и логировании, избегая распространенных ошибок
-
20
Безопасность в серверном программировании
- узнаете, какие принципы безопасности являются критическими в серверном программировании и как избегать уязвимостей
- разберетесь в функционале и особенностях JWT
- освоите методы аутентификации и авторизации пользователей для защиты доступа к системе
- сможете гарантировать безопасность sensitive data благодаря лучшим практикам шифрования и управления доступом
-
21
Подготовка к техническому собеседованию
- узнаете, как проходят технические собеседования и какие вопросы чаще всего задают
- научитесь эффективно решать типичные live-задачи вроде LeetCode Easy
-
22
Итог курса
- научитесь писать эффективный и оптимизированный код
- поймете принципы CI/CD
-
23
Защита курсовых работ
Регистрация