Современный курс по Node.js в 2020

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


Дорогие товарищи инженеры, сообщество Метархия представляет вашему вниманию современный курс по Node.js, который включает глубокий разбор всех возможностей и аспектов платформы. Основной упор делается на то, как создавать надежные высоконагруженные сервера приложений и API без привязки к конкретному фреймворку и даже протоколу, т.е. абстрагировать бизнес-логику в отдельный слой. К лекциям прикреплено множество примеров кода, демонстрирующих гибкую структуру приложений и архитектурные приемы, в том числе работу с СУБД через слой доступа к данным, создание интерактивных приложений на вебсокетах, обеспечение безопасности, Graceful shutdown, межпроцессовое взаимодействие, предотвращение утечек памяти, масштабирование и кластеризацию при помощи процессов и потоков. На текущий момент в курсе 38 лекций (около 35 и ½ часов видео), 37 репозиториев с примерами кода, 4 PDF со слайдами. Перед основной частью курса по Node.js нужно сначала освоить хоть частично курс по асинхронному программированию.


Введение и основы


  • Node.js Введение в технологию
  • Node.js в 2019 году
    • Слайды: https://www.slideshare.net/tshemsedinov/nodejs-in-2019
  • Асинхронное программирование в Node.js
    • Это только обзорная лекция, ссылка на курс по асинхронному программированию
      находится выше, перед оглавлением
  • Обзор встроенного Node.js API
    • Ссылка на документацию: https://nodejs.org/api/documentation.html
  • Настройка среды: Node.js, npm, git, eslint
    • Репозиторий с инстрементами: https://github.com/HowProgrammingWorks/Tools
  • Работа с файлами, буферами и файловыми потоками в Node.js
    • Работа с файлами: https://github.com/HowProgrammingWorks/Files
    • Файловые потоки: https://github.com/HowProgrammingWorks/Streams
    • Буферы: https://github.com/HowProgrammingWorks/Buffers
  • Наблюдение за файловой системой в Node.js
    • Файловая система в Node.js: https://github.com/HowProgrammingWorks/Files
    • Наблюдение за файлами: https://github.com/HowProgrammingWorks/FilesystemWatch
  • Консоль и командная строка в JavaScript и Node.js
    • Примеры кода: https://github.com/HowProgrammingWorks/CommandLine

Структура и архитектура приложений на Node.js


  • Архитектурный подход к программированию
  • Модули, слои, структура проекта, песочницы в JavaScript и Node.js
    • Пример проекта: https://github.com/HowProgrammingWorks/Project
    • Абстрактные слои: https://github.com/HowProgrammingWorks/AbstractionLayers
    • Песочницы: https://github.com/HowProgrammingWorks/Sandboxes
  • Инверсия управления и внедрение зависимостей в Node.js
    • Инверсия управления: https://github.com/HowProgrammingWorks/InversionOfControl
    • Внедрение зависимостей: https://github.com/HowProgrammingWorks/DependencyInjection
  • Межпроцессовое взаимодействие в Node.js
    • Примеры кода: https://github.com/HowProgrammingWorks/InterProcessCommunication
  • Слои, связанность и связность кода
    • Примеры кода: https://github.com/HowProgrammingWorks/Abstractions

Разработка серверов приложений и API на Node.js


  • Клиент-сервер на Node.js TCP и UDP, DNS
    • Примеры кода: https://github.com/HowProgrammingWorks/Socket
  • HTTP сервер на Node.js (routing, cluster, IP sticky)
    • Примеры кода: https://github.com/HowProgrammingWorks/NodeServer
  • HTTP сессии и cookies на чистом Node.js
    • Примеры кода: https://github.com/HowProgrammingWorks/Session
  • HTTP запросы в браузере и Node.js: XMLHttpRequest, fetch
    • Примеры кода: https://github.com/HowProgrammingWorks/HttpRequest
  • Разработка API на Node.js (клиент и сервер)
    • Примеры кода: https://github.com/HowProgrammingWorks/API
  • WebSocket сервер на Node.js (электронные таблицы и чат)
    • Вебсокеты: https://github.com/HowProgrammingWorks/WebsocketChat
    • Чат: https://github.com/HowProgrammingWorks/LiveTable
  • Скаффолдинг для API, UI и данных
    • Примеры кода: https://github.com/HowProgrammingWorks/Scaffolding
  • Высоконагруженные распределенные приложения на Node.js
  • Отдача статики в Node.js
    • Примеры кода и задачи: https://github.com/HowProgrammingWorks/ServeStatic

Работа с базами данных на Node.js


  • Слой доступа к данным, курсор, транзакция
    • Примеры кода: https://github.com/HowProgrammingWorks/Transaction
  • Работа с базами данных в Node.js на примере PostgreSQL
    • Примеры кода: https://github.com/HowProgrammingWorks/Databases

Лекции по CQRS и Event Sourcing


  • Паттерн Команда (Command) действие и параметры как объект
    • Этот паттерн понадобится для следующей лекции
    • Примеры кода: https://github.com/HowProgrammingWorks/Command
  • CQS, CQRS, Event Sourcing — Разделение запросов и модификации данных
    • CQS: https://github.com/HowProgrammingWorks/CQS
    • CQRS: https://github.com/HowProgrammingWorks/CQRS
    • EventSourcing: https://github.com/HowProgrammingWorks/EventSourcing
  • Применение EventSourcing
    • См. примеры из предыдущей лекции
  • Модель акторов (Actor Model)
    • Примеры кода: https://github.com/HowProgrammingWorks/ActorModel

Управление памятью и параллельное программирование


  • Утечки памяти в Node.js и JavaScript, сборка мусора и профилирование
    • Примеры кода: https://github.com/HowProgrammingWorks/MemoryLeaks
  • Atomics, SharedArrayBuffer, worker_threads в Node.js
    • Потоки: https://github.com/HowProgrammingWorks/Threads/
    • Атомарные операции: https://github.com/HowProgrammingWorks/Atomics/
  • Семафоры и мьютексы в JavaScript и Node.js
    • Семафоры: https://github.com/HowProgrammingWorks/Semaphore
    • Мьютексы: https://github.com/HowProgrammingWorks/Mutex
  • Разделяемая память в многопоточном Node.js — доклад на конференции JS Fest 2019 Spring
    • Слайды: https://www.slideshare.net/JSFestUA/js-fest-2019-nodejs

Безопасность, надежность, развертывание и инфраструктура


  • Необработанные ошибки в промисах
    • Примеры кода: https://github.com/HowProgrammingWorks/PromiseError
  • Проблема асинхронного стектрейса в JavaScript и Node.js
    • Примеры кода: https://github.com/HowProgrammingWorks/StackTrace
  • Логирование на Node.js и JavaScript
    • Примеры кода: https://github.com/HowProgrammingWorks/Logging
  • Graceful Shutdown в Node.js
    • Примеры кода и задачи: https://github.com/HowProgrammingWorks/GracefulShutdown
  • Безопасность приложений Node.js
    • Слайды: https://www.slideshare.net/tshemsedinov/nodejs-security-199004963
  • Serverless Clouds (FaaS) и изоляция контекстов запросов в Node.js
    • Слайды: https://www.slideshare.net/tshemsedinov/serverless-clouds-faas-and-request-context-isolation-in-nodejs

Просим вас оставлять свои отзывы о курсе и пожелания по расширению материалов курса. Спасибо за интерес к нашей работе и помощь сообщества в улучшении примеров кода. Подписаться на ютюб канал с открытыми лекциями можно тут: https://www.youtube.com/TimurShemsedinov а на гитхаб автора тут: https://github.com/tshemsedinov

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Будете ли вы смотреть курс?

  • 70,8%Да, интересно все75
  • 26,4%Выборочно просмотрю28
  • 2,8%Не интересно3

Хотите продолжения лекций?

  • 97,7%Да, конечно86
  • 2,3%Да, и я подскажу темы2
  • 0,0%С меня и этого хватит0
Источник: https://habr.com/ru/post/485294/


Интересные статьи

Интересные статьи

Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него. Читать дальше →
«Чистый код» и чистый кот Разработчиков хлебом не корми, дай поспорить о чистоте кода: например, недавно шумиху навёл пост Дэна Абрамова «Goodbye, Clean Code». Но при этом у самого поняти...
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
Инфа будет полезна JS-разработчикам, которые хотят глубоко понимать суть работы с Node.js и Event Loop. Вы сможете осознанно и более гибко управлять потоком выполнения программы (web-сервера). Э...
Каждый лишний элемент на сайте — это кнопка «Не купить», каждая непонятность или трудность, с которой сталкивается клиент — это крестик, закрывающий в браузере вкладку с вашим интернет-магазином.