Открыто

Node.JS (FullStack) разработчик [TeachMeSkills]

Тема в разделе "Курсы по программированию", создана пользователем pikylbkaNomer, 27 июл 2021.

Цена: 82300р.-90%
Взнос: 7429р.

Основной список: 13 участников

Резервный список: 3 участников

  1. 27 июл 2021
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

    Node.JS (FullStack) разработчик [TeachMeSkills]


    [​IMG]

    Курс «Node.js разработчик» позволяет c головой окунуться в мир серверной разработки для реализации сложной бизнес-логики приложений. К тому же, на данном курсе ты еще получишь и уверенные знания языка программирования JavaScript, чтобы создавать современные и полноценные приложения.

    В ходе курса мы напишем несколько приложений - от простых монолитов до сервисов, использующих микросервисную архитектуру. Ты получишь опыт работы с разными типами баз данных - как реляционных, так и не реляционных, научишься запускать их в docker-контейнерах и многое другое, связанное с серверной разработкой. Пройдя этот курс, ты сможешь смело претендовать на позицию Junior Backend Developer.
    256 академических часов
    Составлена практикующими IT специалистами для новичков в разработке. Это лучший курс по Node.JS для начинающих.​

    1. Введение в веб-разработку
    • Знакомство с HTML/XML/XHTML
    • Структура HTML-документа
    • Работа с текстом и HTML-тегами
    • Работа со шрифтами и фоном
    2. HTML и введение в CSS
    • Списки
    • Формы
    • Таблицы
    • Знакомство с CSS: способы подключения, виды селекторов
    • Понятие блочной и строчной модели
    • Float, inline-block
    • CSS-свойства:padding и margin
    3. Углубление в HTML и CSS (Часть 1)
    • Позиционирование блочных элементов, свойство position
    • Flex-модель
    • Семантическая верстка
    • Адаптивная и резиновая верстка
    • Сетка сайта
    • Работа с графическими редакторами (Photoshop, Figma)
    • Выдача задания на верстку макета
    4. Углубление в HTML и CSS (Часть 2)
    • Grid-модель
    • Псевдоклассы и псевдоэлементы
    • Анимация элементов
    • Значение форм в enterprise-приложениях
    5. Дополнительные инструменты верстки страниц
    • Bootstrap
    • Основы препроцессоров LESS, SASS/SCSS, Stylus
    • Локальная разработка на GULP-SASS
    • BEM и какие проблемы он решает
    • Консультация по вопросам сдачи индивидуального задания
    6. Системы контроля версий. Git
    • Что такое системы контроля версий и зачем они нужны
    • Классификация систем контроля версий
    • Git как система контроля версий
    • Основные команды Git
    7. Введение в JavaScript
    • Введение в программирование
    • Классификация языков программирования
    • Что такое JavaScript и для чего он нужен
    • История языка
    • Типы данных
    • Переменные
    • Базовые операторы
    8. Основы JavaScript
    • Как устроен JavaScript
    • Системы счисления (двоичная, восьмеричная, десятичная, шестнадцатеричная)
    • Компиляция и интерпретация исходного кода
    • Как работает JIT-компиляция
    • Приведение типов: явное и неявное
    • Условия (if, switch, тернарный оператор)
    • Циклы (while, for, for ... in, for … of)
    9. Введение в функции
    • Что такое функции и зачем они нужны
    • Способы объявления функций
    • Аргументы функции
    • Возвращаемое значение
    10. Продвинутая работа с функциями
    • Ключевое слово arguments и его роль
    • Оператор расширения в стрелочных функциях и его роль
    • Область видимости. Локальные и глобальные переменные
    • Всплытие значений
    • Стек вызовов функции
    • Рекурсия и ее роль
    • Замыкание и его роль
    • Функции обратного вызова
    • HOC функции
    11. Объекты и массивы
    (Часть 1)
    • Объекты как составной тип данных
    • Доступ к свойствам объектов
    • Массивы как частный случай объектов
    • Доступ к элементам массивов
    • Копирование объектов и массивов
    • Деструктуризация
    12. Объекты и массивы
    (Часть 2)
    • Перебор объектов и перебор массивов
    • Методы по работе с массивами
    • Преобразование объекта в массив и массива в объект
    13. Основы ООП
    • Введение в ООП. Понятие класса и объекта
    • Основные понятия ООП: инкапсуляция, наследование, полиморфизм, абстракция
    • Функции-конструкторы и их роль в создании объектов. Выделение памяти при создании объекта и ключевое слово new
    • Ключевое слово this и понятие контекста
    • Способы привязки контекста выполнения
    14. Прототипы и прототипное наследование
    • Прототипы и их роль
    • Отличие prototype и __proto__
    • Прототипное наследование в JavaScript
    • Появление классов в JavaScript
    • Статические свойства
    • Наследование с использованием классов
    • Свойства get и set
    • Приватные свойства классов
    15. Клиентский JavaScript. DOM
    • Что такое DOM
    • Навигация по элементам
    • Типы элементов и поиск элементов
    • Атрибуты элементов, добавление/изменение стилей и классов
    16. Обработка событий на стороне клиента
    • Введение в браузерные события
    • Всплытие и погружение
    • События по умолчанию
    • События мыши и клавиатуры
    • Обработка событий формы
    17. Асинхронность в JavaScript
    (Часть 1)
    • Что такое асинхронность
    • Отличие синхронного и асинхронного кода
    • Потоки и процессы
    • Отличие асинхронности от многопоточности
    • Событийный цикл
    • Таймеры setTimeout и setInterval
    • Выдача индивидуального задания на разработку собственного клиентского приложения
    18. Асинхронность в JavaScript (Часть 2)
    • Еще раз о функциях обратного вызова
    • Введение в promise
    • Цепочка промисов
    19. Асинхронность в JavaScript (Часть 3)
    • Продолжаем promise и обработка ошибок
    • Промисификация
    • Микро- и макро-задачи
    • Генераторы
    • Работа с promise через async/await
    20. Отправка запросов по сети. Протокол HTTP
    • Введение в клиент-серверную архитектуру
    • Как взаимодействует клиент и сервер
    • Протокол HTTP
    • HTTP запросы. Методы и статус-коды
    • Запросы через XMLHttpRequest, fetch и axios
    • Обработка ошибок в запросах
    21. Хранение данных в браузере. BOM
    • Объектная модель браузера
    • Куки-файлы
    • localStorage и sessionStorage
    22. Основы Webpack (Часть 1)
    • Что такое npm
    • Что такое Webpack и отличия от Gulp
    • Устанавливаем Webpack
    • Настройка окружения
    23. Основы Webpack (Часть 2)
    • Разбиение исходного кода проекта на файлы и запуск через Webpack
    • Работа с зависимостями
    • Плагины и лоадеры
    24. Паттерны проектирования
    • Что такое паттерны их роль
    • Классификация паттернов
    • Порождающие паттерны. Примеры
    • Поведенческие паттерны. Примеры
    • Структурные паттерны. Примеры
    25. MVC-концепция и концепция SPA
    • Семейство паттернов MVC
    • MVC/MVVM
    • Концепция одностраничных приложений
    26. Алгоритмы и структуры данных
    • Что такое алгоритм
    • Способы оценки сложности алгоритма
    • Алгоритмы поиска
    • Алгоритмы сортировки
    • Хэш-таблица, стек, очередь, куча
    • Коллекции Map/Set
    • Деревья
    27. Практическое занятие, консультация по вопросам сдачи проекта
    • Практическое занятие
    • Подробные индивидуальные консультации с преподавателем
    28. Введение в бэкенд-разработку и Node.js
    • Что такое сервер и зачем он нужен
    • Установка Node.js, обзор документации
    • Выполнение первого скрипта на Node
    • Работа Javascript на сервере
    • Архитектура Node.js, V8, libuv, c++ и node-gyp
    • Паттерн reactor и Event loop
    29. Глобальные объекты и модули (Часть 1)
    • Модули. Способы декомпозиции структуры проекта: common.js, es6 modules(.mjs и babel)
    • Встроенные модули: path, fs, os
    • Глобальный объект global в node.js и константы __dirname, __filename
    • Почему window и document не существует в node.js
    • Дебаггер
    30. Глобальные объекты и модули (Часть 2)
    • Объект process
    • Переменные окружения и dotenv, process.argv
    • Почему переменные окружения не должны попадать в репозиторий
    • Buffer API
    • Таймауты, интервалы
    31. Асинхронное взаимодействие с I/O
    • Модуль events. EventEmitter в действии
    • Объект Stream (потоки readable, writable, duplex). Pipe
    • Использование Promise и async/await со Stream API
    • Концептуальная роль Stream в node.js (stdin, stdout, fs, http)
    32. Компьютерные сети, работа интернета и протоколы
    • Понятие "Интернет" и "WEB"
    • Введение в компьютерные сети
    • Топологии компьютерных сетей
    • Стандарты и организация компьютерных сетей
    • 7 уровней модели OSI
    • 4 уровня в модели TCP/IP
    • Главное отличия TCP и UDP
    33. Модуль HTTP и первый веб-сервер на Node.js
    • Протокол HTTP (заголовки, тело запроса, статус коды). Модуль http
    • Айпи адреса, мак-адрес и порты. 127.0.0.1
    • Базовый веб сервер на node.js
    • Объекты request и response
    • Выполнение HTTP запроса на стороне node.js
    • HTTP/HTTPS, SSL/TLS
    34. REST API (Часть 1)
    • Статический веб-сервер
    • Углубление в клиент-серверную модель взаимодействия
    • Создание REST API сервера
    • Роутинг запросов
    35. REST API (Часть 2)
    • Методы GET, POST, PUT, DELETE, PATCH и их смысл в REST
    • Http-клиенты Postman и Insomnia
    • Выдача индивидуального задания на разработку REST API сервис
    36. Основы тестирования
    • Разновидности тестов
    • Unit-тестирование (assert)
    • Chai, mocha, sinon
    • Jest
    37. Авторизация и аутентификация (Часть 1)
    • Разница в понятиях "аутентификация", "авторизация" и "идентификация"
    • Методы аутентификации: сессионная, двухфакторная, беспарольная, SSO
    • Пишем первую авторизацию на Node.JS
    • Json Web Token
    38. Авторизация и аутентификация (Часть 2)
    • Модуль crypto
    • Имплементация JWT
    • Passport.js

    39. Мультипоточность, кластеры
    • Модуль child_process
    • Модуль worker_threads
    • Менеджер процессов pm2

    40. История Unix-систем
    • Основы unix-команд
    • Пользователи в unix
    • Права в unix
    • Система директорий в unix

    41. Деплоймент кластера на сервер
    • Настраиваем VPS-сервер
    • Устанавливаем зависимости и базовая настройка

    42. Практическое занятие, консультация по вопросам сдачи проекта
    • Практическое занятие
    • Подробные индивидуальные консультации с преподавателем

    43. Работа в команде и как писать понятный код
    • Контроль качества кода с помощью ESLint/Prettier/JSHint
    • Процесс code/review
    • Подход Git Flow
    • Гит хуки и husky.js
    • Аннотации

    44. Фреймворки Node.JS
    • Зачем писать на фреймворке
    • Обзор Node.JS фреймворков
    • Фреймворк express.js и почему он популярный
    • Настройка express.js. Роутинг, отправка статических файлов, концепция middleware, парсинг Content-type: application/json, обработка ошибок

    45. Концепция MVC в рамках express.js
    • MVC и шаблонизация данных на сервере
    • Контроллеры, модели, представления, сервисы
    • Выдача индивидуального задания на разработку собственного сервиса

    46. Валидация данных
    • Проблемы без валидации
    • Инструменты для валидации данных. Joi, ajv.
    47. Веб сокеты, polling, long polling, server sent events
    • Проблемы односторонней коммуникации межу клиентом и сервером
    • Polling, long polling
    • Понятие о web-sockets
    • ws/wss
    • Библиотека socket.io
    • Server sent event
    48. Знакомство с контейнеризацией, Docker, docker-compose
    • Установка и настройка Docker
    • Запаковываем наше приложение в docker-compose
    • Запускаем базу данных в docker-compose
    • Подключаем базу данных в наше express-приложение
    • Настраиваем GUI-приложение для базы данных
    • Выдача задания на контейнеризацию своего приложения
    49. Базы данных. Введение
    • Классификация БД
    • Реляционные базы данных
    • Язык запросов SQL
    • Драйвер для БД(pg)
    • Проектирование баз данных
    • SQL-injection
    50. Базы данных SQL
    • Агрегатные функции
    • Транзакции
    • Нормальные формы данных
    • PostgreSQL, JSON, JSONB
    • ORM: knex.js, sequilize
    • Миграция
    • Фикстуры
    • Переносим данные своего приложения в БД
    51. Базы данных NoSQL
    • Установка MongoDB
    • Синтаксис MongoDB
    • Драйвер mongodb
    • Mongoose: Модели, миграции, запросы
    • Агрегация
    52. Кэширование данных
    • Что такое key-value хранилища и для чего они нужны
    • Запуск Redis с помощью docker-compose
    • Подключение к редис с помощью драйвера
    • Сравнение скорости запросов в PostgreSQL и Redis
    53. HTTPS-сервер на Node.JS. Возможности продакшн веб-сервера
    • Node.js http2-модуль и openssl
    • Nginx: какие решает задачи
    • Nginx: Сборка, раздача статики, реверс проксирование
    • Nginx: Запуск и настройка
    • Nginx: Балансировка запросов, алгоритмы балансировки
    54. Мониторинг и логирование запросов
    • Для чего нужно следить за логами приложений
    • Простой логгер своими руками
    • Анализ логов Nginx с помощью утилиты goaccess
    • Инструменты логирования в Node.JS - Loggly/Winston/Morgan
    • Сервисы для логирования catchJS и Sentry.io
    55. Микросервисы
    • Преимущества и недостатки микросервисной архитектуры
    • Коммуникация между микросервисами
    • Первые микросервисы на http
    • Проблемы с http и понятие брокера сообщений
    • Виды брокеров NATS/Kafka/RabbitMQ/Redis as MQ
    • Выдача задания для разбиения приложения на микросервисы
    56. Документатор swagger
    • Документируем наше бэкенд-приложение для фронтенд разработчиков
    • OpenApi 3.0 / Swagger
    • Swagger: Настройка и запуск
    • Домашнее задание на подключения модуля swagger к проекту
    57. Проблемы микросервисной архитектуры
    • Проблема микросервисов на примере Socket.io
    • Решение проблемы с Socket.io-redis
    • Выдача задания на AB тестирование
    58. Микросервисные фреймворки
    • Какие задачи решает Moleculer.js / Nanoservices
    • Добавляем Moleculer в свой проект
    • Решаем задачу с распределением работы между инстансами
    • CRON jobs
    59. Деплоймент (Часть 1)
    • Настраиваем балансировщик для Docker
    • Запускаем приложение на VPS-сервере
    • Настройка домена
    • Задание на деплоймент своего приложения
    60. Деплоймент (Часть 2)
    • Практическое занятие по настройке приложения на VPS-сервере
    • Консультации с преподавателями по вопросам деплоя
    61. Поисковые движки
    • Проблемы БД при работе с большим количеством данных
    • Инструменты Elasticsearch и Sphinx
    • Запуск и настройка Elastic Search
    • Elasticsearch: запросы, индексы, фильтры
    62. Стресс-тесты
    • Инструменты для стресс-тестов: artillery / loadtest / autocannon
    • Тестируем наше приложение на отказоустойчивость на VPS-сервере
    • Финальное домашнее задание
    63. Подготовка к дипломному проекту
    • Повторение изученного материала
    • Выбор дипломного проекта
    64. Онлайн-тренинг "Трудоустройство в IT"
    • Составление резюме (теория + практика)
    • Составление профиля на LinkedIn (теория + практика)
    • Прохождение интервью
    • Soft skills, которые важны в рамках интервью
    • Проведение пробного интервью

    Программа
     
    1 человеку нравится это.
  2. Последние события

    1. boriz
      boriz не участвует.
      27 янв 2025
    2. boriz
      boriz участвует.
      27 янв 2025
    3. Mita2019
      Mita2019 не участвует.
      23 сен 2024
    4. AlbinaKov
      AlbinaKov участвует.
      17 авг 2024