Продолжительность:
19 занятий +4 бонусных
Практический курс, который поможет овладеть Node.js: чтобы эффективно работать с базами данных, углубиться в разработку backend-fullstack, без проблем развертывать серверные приложения и обезопасить их от атак.
-
Курс длится 2 месяца, в течение которых вы сможете комплексно овладеть разработкой с платформой Node.js.
-
Познакомимся с платформой и ее основными фреймворками Express.js и NestJS, научимся работать с серверами и базами данных: реляционными и NoSQL, в частности MongoDB и MySQL. Освоим асинхронную модель программирования и best practises для обеспечения безопасности серверных приложений. Затем изучим пайплайную структуру, научимся развертывать инфраструктуру и тестировать среду
В ПРОГРАММУ КУРСА ВХОДЯТ:
-
КОМПЛЕКСНАЯ РАБОТА С NODE.JS В течение курса вы полностью овладеете Node.js — от знакомства с базовым функционалом до работы с фреймворками, серверами и современными инструментами.
-
BEST PRACTICES На курсе овладеем лучшими практиками разработки на Node.js: уделим время асинхронному программированию, работе с базами данных и безопасности инфраструктуры.
-
КУРСОВОЙ ПРОЕКТ В конце курса презентуете курсовой проект – разработаете собственное приложение, которое впоследствии сможете добавить в свой профиль на GitHub.
-
БОНУСНЫЙ БЛОК Для студентов, еще не работавших с JavaScript или желающих освежить знания этого языка, мы добавили в курс бонусный блок с основами JS, состоящий из 4 занятий.
ЛЕКТОР:
Сергей
Ващенко
- Software Designer
- 7+ лет опыта в предоставлении разработки в сфере Frontend/Backend
- успешно внедрил изменения с использованием Scrum Framework в технологическом стеке, включающем Angular, Node.js, Python, GoLang
- имеет опыт работы с Highload-проектами, работал в монолитных и микросервисных продуктах с использованием Go, .NET, NodeJS
- писал и оптимизировал тяжелый SQL- и NoSQL-код
- имеет сертификации Stanford, CISCO, Linux, AWS
ПРОГРАММА
-
00
Бонусный блок. JavaScript
Результаты: поймете, как JavaScript работает в браузере с помощью движка V8. Узнаете типы данных в JavaScript, научитесь использовать циклы и конструкции управления потоком. Вы можете выполнять обработку ошибок, применять различные типы функций, работать с Event Loop, Microtasks, Macrotasks и Call Stack.
- Знакомство с JavaScript. Part 1
- Знакомство с JavaScript. Part 2
- Асинхронность. Part 1
- Асинхронность. Part 2
-
01
Знакомство с Node.js
- узнаете об основных преимуществах Node.js
- сможете устанавливать и настраивать рабочую среду Node.js с помощью JetBrains WebStorm
- будете уметь с помощью линтеров JSLint и ESLint улучшить качество кода
- сможете мотивированно выбрать фреймворк для работы с учетом преимуществ и особенностей каждого
-
02
Работа с фреймворком Express.js
- узнаете об особенностях применения фреймворка Express.js, его ограничениях и преимуществах
- сможете использовать на практике один из самых популярных фреймворков для Node.js
- узнаете, как создавать базовую структуру приложений, пользуясь этим фреймворком
-
03
Работа с фреймворком NestJS
- поймете особенности применения фреймворка Nest.js, его ограничения и преимущества
- научитесь использовать на практике один из самых популярных фреймворков для Node.js
-
04
Обзор middleware
- поймете особенности middleware, включая их назначение, функциональность и ключевые преимущества в обеспечении межпроцессного взаимодействия
- научитесь распознавать и избегать bad practices в middleware
- узнаете примеры middleware antipatterns и поймете, как их избегать
- ознакомитесь с паттернами и принципами в контексте middleware, что позволяет создавать более структурированные и поддерживаемые программы
-
05
Итоговое занятие: middleware best practices
- узнаете best practices для middleware
- ознакомитесь с лайфхаками по использованию middleware
-
06
Знакомство с серверами
- узнаете, как создавать серверы в Node.js с использованием Express
- научитесь реализовывать обработку различных типов HTTP-запросов
- узнаете, как реализовывать маршрутизацию запросов в Express
- поймете базовые принципы архитектуры приложений на Node.js
- научитесь использовать Nodemon для автоматизации перезапуска сервера
-
07
Взаимодействие с реляционными базами данных (MySQL и PostgreSQL)
- узнаете разницу между SQL и NoSQL базами данных
- научитесь работать с основными SQL-запросами
- усвоите концепции первичного ключа (Primary Key), внешнего ключа (Foreign Key) и уникального идентификатора (Unique Key)
- узнаете, как применять принципы нормализации данных в базах данных
-
08
Обзор TypeORM
- поймете основные концепции и возможности TypeORM, включая его ключевые функции и архитектурные особенности
- научитесь использовать TypeORM на практике для создания и управления базами данных в приложениях Node.js, включая операции CRUD
- узнаете об основных преимуществах и возможных недостатках TypeORM
-
09
Взаимодействие с нереляционными базами данных (MongoDB, Redis, Cassandra)
- узнаете, как пользоваться MongoDB для Node.js
- научитесь применять Redis для Node.js
- сможете работать с mongoose
-
10
Работа с базами данных: best VS bad practices
- узнаете о best practices для работы с базами данных, ознакомитесь с лайфхаками по использованию
-
11
Реактивное программирование: WebSocket, модуль FS и Selenium
- поймете, что такое реактивное программирование и его особенности
- узнаете, как работает Websocket, и научитесь использовать его на практике
- ознакомитесь с работой FS module
- поймете, как работает автоматизация и тестирование по Selenium
- научитесь работать с RxJS на практике, знаете преимущества и особенности применения
- узнаете, как управлять событиями EventEmitter
-
12
Асинхронность
- поймете, что такое асинхронность, когда можно использовать асинхронный подход
- узнаете, как управлять событиями Event Emitter
- узнаете о best и bad practices в асинхронном программировании
-
13
Итоговое занятие: асинхронность — best practices
- узнаете best practices для работы с асинхронностью, ознакомитесь с лайфхаками по использованию
-
14
Логирование и тестирование
- научитесь различать типы тестирования
- узнаете о принципах TDD и BDD
- услышите best and bad practices в тестировании и логировании
- научитесь интегрировать эти подходы на практике
-
15
Безопасность в серверном программировании
- узнаете о принципах безопасности в серверном программировании
- узнаете, что такое JWT, особенности применения и его функционал
- научитесь пользоваться на практике JWT
- узнаете, как обеспечить авторизацию и аутентификацию пользователя
- овладеете принципами защиты sensitive data
-
16
Размещение и развертывание программы
- узнаете о структуре типичного GitHub pipeline
- будете различать методы релиза ПО
- научитесь создавать бренчи и тестировать в enviroment Node.js
- узнаете, как правильно развертывать приложение в Docker
-
17
Итог курса
- научитесь писать эффективный иоптимизированный код
- поймете принципы CI/CD
-
18
Подготовка к техническому собеседованию
- поймете основные вопросы и структуру собеседования
- научитесь выполнять live-задачки типа LeetCode Easy Level
-
19
Защита курсовых работ
Регистрация