Node.js Серверный JavaScript
Неделя 1 — Введение в Node.js, асинхронность, модули
— Знакомство с командой курса.
— Изучаем модули, файловую систему и потоки в Node.js.
— Разбираем асинхронность в Node.js.
Введение в Node.js и настройка рабочей среды
1. Intro (09:10)
2. Основная информация о Node.js (29:13)
Модули, файловая система и потоки
1. Введение (05:22)
2. Самодельный загрузчик модулей (03:21)
3. Циклические зависимости (03:04)
4. ES6 модули (02:41)
5. Объект Process (04:56)
6. Модуль Path (03:54)
7. Работа с файлами (06:18)
8. Потоки. Модуль stream (03:22)
9. Потоки чтения (08:37)
10. Потоки записи (11:54)
11. Transform stream (05:15)
12. Transform parallel (05:35)
Работа с асинхронностью в Node.js
1. Event Loop (03:57)
2. Event Emitter (02:12)
3. Коллбеки (04:07)
4. Промисы (06:03)
5. Генераторы (04:15)
6. Async-await (06:06)
Разбор заданий #1
1. ДЗ №1 (14:27)
2. ДЗ №2 (12:01)
Неделя 2 — Работа с шаблонами, Express.js, Koa.js
— Изучаем принципы работы с шаблонами (шаблонизаторы Ejs, Handlebars, Pug).
— Знакомимся с framework Express.js.
— Изучаем framework Кoa.js.
Работа с шаблонами
1. Введение (05:35)
2. Обзор шаблонизатора Ejs (05:39)
3. Разбиение на файлы. Шаблонизатор Ejs. (02:07)
4. Обзор шаблонизатора Handlebars (06:43)
5. Использование partials в шаблонизаторе Handlebars (05:15)
6. Обзор шаблонизатора Pug (04:47)
7. Подключение шаблонизатора Ejs в фреймворке Express (02:05)
8. Подключение шаблонизатора Handlebars в фреймворке Express (01:59)
9. Подключение шаблонизатора Pug в фреймворке Express (01:37)
Express.js
1. Введение (05:23)
2. Маршрутизация (07:29)
3. Загрузка файлов на сервер (11:38)
4. Промежуточное ПО (07:08)
5. Отправка электронной почты (09:38)
6. Сеансы (05:47)
7. Простейшая авторизация и аутентификация с помощью сеансов (03:52)
8. Cookie - файлы и логирование (07:14)
Koa.js
1. Intro (03:08)
2. Маршрутизация (02:00)
3. Именованные параметры (01:59)
4. Статические файлы (01:48)
5. Обработка ошибок (03:02)
6. Middleware (01:12)
7. Работа с JSON (01:32)
8. Загрузка файлов (01:36)
9. Cookie (01:32)
10. Выбор шаблонизатора (01:57)
11. Пример приложения (05:11)
Разбор заданий #2
1. ДЗ №3-1 (27:50)
2. ДЗ №3-2 (28:02)
Неделя 3 — REST API, работа с базами данных
— Разбираем понятие API и изучаем примеры построения простого API.
— Рассматриваем работу с реляционными и не реляционными БД на примере PostgreSQL и MongoDB.
REST API
1. Установка проекта (03:24)
2. Подключение swagger и описание get запроса в swagger (09:10)
3. Добавление, получения по id, обновления и удаления в swagger (06:49)
4. Контроллер. Получения всех User (07:25)
5. Контроллер. Создание нового User (06:15)
6. Контроллеры получения, обновления и удаления (06:14)
Работа с реляционными БД (на примере PostgreSQL)
1. Настройка окружения (05:02)
2. Подключение к базе данных с помощью sequelize (11:36)
3. Sequelize CLI (02:15)
4. Создание и применение первой миграции (06:00)
5. Создание модели (09:09)
6. Подключаем модели к проекту (02:57)
7. CRUD с использованием модели (10:48)
Работа с нереляционными БД (на примере MongoDB)
1. Intro (02:07)
2. Установка (03:19)
3. Подключение к базе (07:27)
4. Подключаем NodeJS (07:50)
5. Mongoose (10:18)
Неделя 4 — Сокеты, авторизация, тестирование
— Работа с Websocket. Рассматриваем библиотеку Socket.IO.
— Рассматриваем различия авторизации и аутентификации.
— Изучаем виды тестов (на примере Mocha и Chai тестов).
Сокеты и работа с ними
1. Введение в вебсокеты (03:40)
2. Модуль WS (06:20)
3. SocketIO (07:08)
4. SocketIO - пространства имён (02:40)
5. SocketIO комнаты (04:28)
Авторизация и аутентификация
1. Введение (00:52)
2. Passport (02:28)
3. Passport и локальная стратегия (02:32)
4. Сериализация и десериализация (01:24)
5. Используем локальную стратегию (04:28)
6. Реализуем выход (01:16)
Тестирование
1. Когда нужно тестировать (01:18)
2. Основные термины (06:10)
3. Пишем тесты правильно (04:03)
4. Выбор фреймворка (02:46)
5. Jest - добавление в проект (03:16)
6. Jest - конфигурация (01:24)
7. Jest - watch mode + расширение vscode (01:58)
Неделя 5 — Deployment
— Рассматриваем виртуальные хостинги. Deployment на Heroku с использованием Travis.
— Пишем Telegram-бота, учимся работать с node-telegram-bot-api.
— Выбираем framework для реализации выпускного проекта.
Deployment и все, что с ним связано
1. Введение (01:48)
2. Heroku (02:30)
3. Travis + Heroku (06:06)
4. DigitalOcean (06:16)
5. Docker (04:32)
Процесс написания ботов
1. Intro (02:06)
2. Первый Telegram бот (03:46)
3. Медиа файлы (02:52)
4. Клавиатуры для ботов (01:13)
5. Inline keyboard (01:24)
6. Разметка (03:09)
Разбор заданий #3
1. Docker (09:58)
Неделя 6 — Серверный рендеринг
— Рассматриваем принципы серверного рендеринга.
— Разбираем преимущества и недостатки SPA.
— Завершаем работу над выпускным проектом.
Серверный рендеринг
1. CSR (01:48)
2. SSR (02:06)
3. React SSR (02:46)
4. GatsbyJS (05:57)
Комплексный курс по PHP
Неделя 1 – Основы языка, работа с функциями
– Знакомство с командой курса и группой.
– Изучаем основы и встроенные возможности языка PHP.
– Учимся работать с функциями.
Знакомство. Workflow
1. Открытие курса (22:48)
GIT
1. Введение (07:03)
2. Начинаем работать с Git (03:01)
3. Создание нового репозитория (01:09)
4. Добавление файлов в индекс (область слежения) Git (06:49)
5. Создание коммита (07:17)
6. Навигация по коммитам. Отмена изменений (12:10)
7. Типичный цикл работы с Git (03:34)
8. Ветвления в Git (11:27)
9. Конфликты при слиянии веток (06:06)
10. Временное (без коммита) сохранение данных (05:25)
11. Работа с удалёнными репозиториями (20:04)
12. Использование GitHub Pages для хостинга проектов (04:31)
Основы языка
1. Введение. Типы данных (21:28)
2. Операторы языка (34:35)
3. Преобразования типов (15:47)
4. Константы. Массивы. Конструкции языка и логические операции (36:05)
5. Глобальные переменные $_SESSION (14:35)
6. Язык SQL. Создание таблиц, добавление, выборка и удаление записей (41:12)
Работа с функциями
1. Понятие функции. Примеры (04:16)
2. Входные аргументы функции, strict type (07:54)
3. Возвращаемое значение (08:28)
4. Область видимости функции (10:17)
5. Передача аргументов по ссылке и по значению (11:31)
6. Анонимные функции, примеры (14:26)
7. Рекурсии и функции с переменным числом аргументов (22:29)
Встроенные возможности языка
1. Функции для работы с переменными (11:51)
2. Функции для работы со строками (16:36)
3. Функции работы с датой и временем (07:50)
4. Функции для работы с массивами (21:39)
5. Функции для работы с файлами и загрузка файлов на сервер (18:29)
Разбор заданий #1
1. Домашнее задание №0 (04:17)
2. Домашнее задание №1 (16:31)
3. Домашнее задание №2 (21:02)
Неделя 2 – Работа с данными, ООП
– Изучаем работу с базой данных.
– Изучаем основы ООП.
– Рассматриваем основные шаблоны проектирования.
Работа с данными из PHP
1. XML, CSV, JSON (26:05)
2. Введение в MySQL (24:42)
3. Подключение к MySQL, Создание таблиц (25:42)
4. Тренируемся делать запросы (28:58)
5. Библиотека mysqli (14:10)
6. Библиотека PDO (11:05)
7. Пишем класс-обертку для работы с БД (17:56)
8. Ajax. Делаем json-api (09:36)
ООП и приемы работы в ООП стиле
1. Введение. Классы и объекты (16:07)
2. Инкапсуляция и наследование (18:47)
3. Наследование и абстрактные классы (09:10)
4. Пространства имен и финальные классы (12:39)
5. Шаблон синглтон (08:59)
6. Интерфейсы и трейты (12:36)
Разбор заданий #2
1. Домашнее задание №3-1 (05:36)
2. Домашнее задание №3-2 (20:24)
3. Домашнее задание №4 (17:26)
Неделя 3 – Безопасность, MVC
– Изучаем принципы безопасной работы с БД.
– Применяем на практике защиту от XSS.
– Рассматриваем концептуальную схему и архитектуру MVC.
Безопасность
1. Создание сайта с регистрацией и авторизацией с нуля (01:06:05)
2. Добавление блога, sql и xss инъекции (19:12)
3. Загрузка файлов (13:37)
MVC
1. Определение MVC (06:00)
2. Создаем единую точку входа (03:48)
3. Автолоадер классов (16:04)
4. Создаем простейший роутинг (04:14)
5. Создаем контроллер (04:52)
6. Апгрейдим роутинг (20:12)
7. Редиректы и обработка 404 (11:46)
8. Добавляем компонент View (29:36)
9. Добавляем компонент Model (32:34)
10. Делаем авторизацию и регистрацию (26:55)
Разбор заданий #3
1. Реализация MVC (11:20)
2. Регистрация и авторизация (18:38)
3. Добавляем редирект (02:52)
4. Добавляем блог (22:14)
5. Создаем API-метод (04:15)
6. Создаем роль администратора (07:35)
Неделя 4 – Работа с основными библиотеками
– Изучаем основные библиотеки для работы с письмами, временем, изображениями.
– Изучаем тестирование с помощью PHPUnit.
– Применение на практике Eloquent ORM, Faker.
Внедрение сторонних библиотек
1. Composer (10:35)
2. Swiftmailer (06:50)
3. Twig (15:03)
4. Crawler (07:21)
5. FS Carbon (08:35)
Внедрение сторонних библиотек - 2
1. Валидация данных с GUMP (17:08)
2. Работа с изображениями (19:48)
3. Тестирование с PHPUnit (14:33)
4. Eloquent ORM. Faker (44:47)
Разбор заданий #4
1. Домашнее задание 5-1 (Отправка почты) (02:25)
2. Домашнее задание 5-2 (Поддержка twig) (01:57)
3. Домашнее задание 5-3 (Работа с изображением) (04:49)
Неделя 5 – Laravel
- Рассматриваем установку и настройку Laravel.
- Создаем контроллеры, модели и миграции.
- Тестируем код с PHPUnit + Laravel Dusk.
Начало работы с Laravel
1. MVC start (29:38)
2. Формы. Роуты. Middleware. Валидация (34:18)
Продолжаем работу Laravel
1. Laravel libs (28:39)
2. Unit tests (26:49)
3. Dusk (18:38)
4. Mail and mix js (05:15)
Разбор заданий #5
1. Обзор MVC (06:12)
2. Подключаем и настраиваем Eloquent ORM (02:45)
3. Переходим на модели Eloquent (22:43)
4. Делаем админку пользователей (33:17)
Неделя 6 – Закрытие курса
- Работа над выпускными проектами.
- Подведение итогов. Выдача сертификатов.
Разбор заданий #6
1. Подготовка, шаблоны (15:57)
2. Создание товара (18:14)
3. Создание категории (21:19)
4. Делаем пагинацию (12:26)
5. Проектируем корзину (11:11)
6. Делаем корзину (42:45)
7. Завершение. Создаем админку (04:33)
Как получить работу в IT: фишки и советы
1. Как получить работу в IT? Поиск, собеседование и испытательный срок (42:21)
2. Как найти удаленную работу и фриланс-заказы? (20:12)
3. Первая работа в IT — как себя вести? Стажировки, официальное трудоустройство и работа "за еду" (14:11)
4. Как пройти испытательный срок? (27:10)
5. Как подготовиться к собеседованию в компании уровня FAANG (08:52)
6. Процесс загрузки web страницы (25:19)
7. Собеседование программиста – всё, что нужно знать (01:24:07)
8. Решение задачи с собеседования программиста (19:36)
9. Собеседование Frontend-разработчика (01:37:17)