Открыто

Курс по Node.js [learn.javascript.ru] [Сергей Зеленов]

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

Цена: 23000р.-94%
Взнос: 1214р.

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

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

  1. 14 апр 2022
    #1
    Evgeny20
    Evgeny20 СкладчикСкладчик
    Курс по Node.js
    Курс для тех, кто ранее не разрабатывал на Node.JS или хочет получить хороший level-up в этой технологии.

    Screenshot_35.png

    Этот курс посвящён профессиональной серверной разработке на Node.js.

    Мы изучим, как писать современные серверные приложения.

    Основные темы курса:
    • Фундаментальное понимание Node.js: важные встроенные и сторонние модули, потоки.
    • Работа с базой данных MongoDB (с другими базами она устроена аналогично).
    • Веб-сервисы и обычные страницы для обработки сетевых запросов.
    • Авторизация, в том числе через соц. сети.
    • Непрерывное соединение и общение при помощи Websockets.
    • Тестирование: unit-тесты, функциональное и e2e тестирование.
    • А также ряд других аспектов, которые не так заметны, но тоже важно сделать правильно: конфигурация, логи, обработка ошибок, роутинг и т.п.

    Курс идёт примерно 1.5 месяца.

    До начала обучения: вводные материалы:
    • За неделю до курса мы попросим вам посмотреть видео-лекции по основам Node.js. Они довольно простые, чтобы на первом занятии вы уже что-то знали.
    • Мы также будем использовать систему Git/GitHub для обмена исходным кодом, так делает большинство проектов. Для тех, кому это в новинку - дадим крэш-курс и поможем разобраться.
    Онлайн-занятия с преподавателем 2 раза в неделю:
    • Занятие проходит в формате вебинара. Запись занятия доступна через 15 минут после окончания. Вы также сохраняете доступ к записям после окончания курса.
    Домашние задания, обратная связь по ним:
    • Ваши решения присылаете преподавателю, он проверяет качество кода, использование правильных шаблонов проектирования, даёт обратную связь. К ряду заданий прилагаются тесты, которые частично позволяют проверить правильность решения самому.
    Чат:
    • Между занятиями доступен групповой чат для общения и вопросов преподавателю.
    Курсовой проект:
    • Делаем курсовой проект: интернет-магазин. Большую часть кода для проекта пишете вы.
    Результат:
    • Вы хорошо разбираетесь в устройстве Node.JS, разрабатываете и отлаживаете программы на нём.
    • Вы знаете, как поднять проект малого и среднего размера, чтобы он стабильно работал, не падал, корректно отрабатывал при ошибках.
    • Вы можете разработать современный веб-сервис на Node.JS с использованием самого последнего стандарта JavaScript и фреймворков.
    Сертификат:
    По окончанию курсов вы получаете сертификат в электронном виде на русском и английском языках.

    Хотя сертификатам в нашей профессии обычно не придают значения. Главное - знания и умения, которые вы получите, если будете полноценно участвовать в курсе.

    Собрание:
    Первая встреча традиционно является собранием. На нём мы знакомимся, проверяем подключение, обсуждаем организационные вопросы, взаимодействие с преподавателем, как учиться на курсе.

    Фундаментальный Node.js
    Изучим, как устроен Node.js, его внутреннюю архитектуру и основные приёмы разработки.
    • Настройка окружения для разработки.
    • Прием и обработка HTTP-запросов.
    • Организация кода Node.js-приложения: модули в старом (commonjs) и новом (ES modules) синтаксисе.
    • Отладка процесса Node.js: скрипты, утечки памяти.
    • Жизнь и смерть Node.JS-процесса, событийный цикл. Макротаски и микротаски, особенности работы в Node.js.
    • HTTP-сервер, асинхронная модель Node.js.
    Потоки данных:
    Потоки данных в Node.js используются при приёме и отправке multipart-форм, файлов, больших запросах к базе данных и во многих других ситуациях.

    Когда разработчики переходят от обычного JavaScript к Node.js, у них всегда возникают сложности с потоками, поэтому мы уделяем им особое внимание.
    • Потоки для чтения, записи и преобразования данных. Область применения потоков, их правильное использование.
    • Внутреннее устройство потоков: буферизация данных, события, методы управления потоками.
    • Тип данных Buffer для бинарных данных.
    • Передача данных из потока в поток, обработка ошибок в цепочке.
    • Последние изменения и улучшения: потоки в Node.js постоянно меняются, мы даём самую последнюю версию.
    Юнит- и функциональное тестирование:
    Автоматизированное тестирование используют почти во всех проектах, хотя и в разном объёме. Если его правильно применять, оно делает разработку надёжнее и проще.
    • Типы тестирования, архитектурное устройство тестовых фреймворков, отличия, инструментарий.
    • Написание юнит-тестов при помощи Mocha и Sinon, для тестирования классов и функций.
    • Написание функциональных тестов HTTP-сервера для проверки полного цикла работы.
    По окончанию этого занятия вы понимаете, как разрабатывать на Node.js, как делать сервер и правильно обрабатывать запросы, автоматически тестировать свой код.

    Серверные фреймворки, Koa.js:
    Фреймворки облегчают написание приложений, за счет реализации типичных задач, стоящих перед разработчиком.
    • Принципы устройства широко распространённых фреймворков на Node.js: express.js и koa.js (новое поколение express).
    • Создаём простой сервер на koa.js.
    • Архитектура вложенных middleware, приём проектирования “цепочка обязанностей”.
    Реализация основных задач:
    • Обработка запросов, роутинг.
    • Логирование.
    • Обработка ошибок.
    • Чтение больших POST-запросов.
    • Отдача статических файлов.
    • Конфигурация приложения в разных окружениях.
    Базы данных:
    Базы данных, такие как MongoDB, MySQL, Oracle и другие, хранят все данные нашего приложения: товары, пользователей и так далее, и позволяют быстро искать среди них. Они используются почти во всех современных приложениях, исключая самые простые.
    • Общие принципы работы с базами данных:
      • NoSQL, используя Mongodb,
      • Поиск по тексту с морфологией на Elasticsearch
    • Для проекта будем использовать mongodb, поэтому изучим ключевые особенности работы с этой базой.
    • Создание REST API для работы с пользователями при помощи MongoDB и Koa.js
      • ООП при помощи Mongoose: модели, запросы, схемы, валидация и плагины.
      • Создание, сохранение и поиск пользователей в базе.
      • Индексы для быстрого поиска.
      • Валидация, обработка ошибок
    Пользователи, авторизация:
    Авторизация для пользователей необходима практически в каждом приложении.
    • Принципы безопасного хранения паролей, использование криптографических алгоритмов для генерации хэшей.
    • Регистрация, вход и выход из приложения.
    • Пользовательские сессии (cookie для браузера, jwt для микросервисов).
    • Использование библиотеки passport.js, которая предоставляет готовые модули авторизации. Создание и подключение OAuth 2.0 стратегий на примере социальной сети vkontakte (по желанию можем рассмотреть и другие).
    • Создание серверной части для фронтенд-приложения:

      • Фронтенд-часть на React.js уже написана.
      • Веб-сервисы для авторизации.
    Улучшаем приложение:
    • Шаблонизация (модуль pug).
    • Email: отправка, важные нюансы (внешние сервисы, защита от спама, инлайнинг стилей, картинки).
    • Архитектура сложных приложений:
      • Вложенный роутинг
      • Организация файлов и модулей проекта.
    • Интеграционное тестирование: написание скриптов, которые управляют браузером, позволяют автоматически открыть страницу, залогиниться, добавить товар в корзину и оплатить его.
    После этого занятия вы умеете создавать сервер для SPA или обычного приложения с веб-сервисами, тестами, авторизацией.

    При желании можно дописать к нему новые сервисы, архитектура и ваши навыки легко позволяют это.

    Чаты, непрерывная подгрузка и обмен данными:
    Способы поддержки непрерывного соединения с сервером и получения новых данных: нужно для создания чата, онлайн-игр и других интерактивных приложений.
    • Основные приёмы и техники, их плюсы и недостатки, область применения: Long polling, Server Sent Events, Websockets.
    • Используем Websockets (при помощи socket.io) для непрерывных соединений.
    • Единая авторизация, интеграция websocket с приложением.
    • Реконнект, отслеживание состояния соединения.
    • Кластеризация при высоких нагрузках.
    Развёртывание и запуск приложения:
    На этом занятии мы обсудим важнейшие вопросы, касающиеся запуска и обновлений готового приложения на сервере, в “боевом” окружении.
    • Запуск и поддержание работы приложения.
    • Плавное обновление (рестарт без потери соединений и без даунтайма).
    • Миграции базы данных.
    • Мониторинг.
    • Менеджмент логов.
    • Примеры развёртывания:
      • Heroku с github-интеграцией
      • Тестирование с travis-ci
    • Хранение и использование секретных ключей.
    После этого занятия вы понимаете в деталях весь цикл разработки приложения: не только написания кода, но и релиза, организации логов и запуска на сервере.

    Занятие на дополнительные темы, нужные группе:
    Несмотря на то, что курс является наиболее полным и покрывает все основные темы, касающиеся разработки и запуска веб-приложений на Node.js - всё равно есть темы, которые не вошли в программу курса, но обсудить их хочется.

    Это занятие отведено специально для них и строится целиком и полностью на ваших вопросах. Можем обсудить как чисто технические вопросы, например преимущества и недостатки микросервисной архитектуры или отличия протокола REST от GraphQL, так и нетехнические - например, из каких источников можно получать новую информацию.

    Онлайн-магазин:
    • С товарами в базе данных, сгруппированными по категориям.
    • С возможностью поиска по товарам.
    • С аутентификацией и регистрацией пользователей.
    • С чатом поддержки.
    • А также с отсылкой почты и другим функционалом, важным для реальных проектов.
    Screenshot_36.png Screenshot_37.png Screenshot_38.png

    • Знание JavaScript, включая ООП, классы.
    • Понимание браузерного JavaScript/HTML/CSS (клиентский код писать не понадобится, этот курс про серверный JS).
    • Интернет 256kb/s или быстрее для видео.

    • Сергей Зеленов. Ведёт курс с 28 июня 2016. Автор программы курса по Node.JS, а также автоматизированного задачника. Занимаюсь профессионально разработкой веб-приложений с 2009 года, а с 2013 в основном использую Node.JS. Являюсь главным разработчиком распределенной системы хранения и обработки больших данных для машинного обучения в режиме реального времени в компании SO1. Также разрабатываю платформу learn.javascript.ru: локализации движка, разработка мультиязычного поиска, а также создал автоматизированную систему проверки задач для разных курсов поверх Github и TravisCI. Основное внимание в обучении уделяю фундаментальным вещам а также тому, как писать архитектурно грамотный, качественный и тестируемый код.

    Мы занимаемся обучением с 2007 года. За это время у нас обучились тысячи разработчиков из разных стран и компаний. Все отзывы являются честными. Мы не модерируем их.

    Screenshot_39.png Screenshot_40.png Screenshot_41.png

    • Если объяснения будут вам непонятны
    • Если курсы не дадут вам новых знаний и умений
    • Если вы не сможете подключиться к системе онлайн-обучения
    …то вы сможете получить деньги назад.

    Для этого достаточно не позже окончания первой недели курса написать, что именно вас не устраивает, и тогда ваше участие будет прекращено, а вы получите деньги обратно.

    Цена курса составляет 23000₽

    Скрытая ссылка
     
  2. Последние события

    1. Valwizard
      Valwizard не участвует.
      24 мар 2024
    2. anay_01
      anay_01 участвует.
      12 мар 2024
    3. allioha
      allioha не участвует.
      5 мар 2024
    4. SergeyBy1985
      SergeyBy1985 не участвует.
      28 янв 2024

Поделиться этой страницей