|
| 1 | +# Технологический стек Node.js в 2025 |
| 2 | + |
| 3 | +Что нужно знать на входе: |
| 4 | +- 🔗 [Синтаксис JavaScript без всяких триков](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Fundamentals.md) |
| 5 | +- 🔗 [Основы асинхронного программирования](https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Asynchronous.md) |
| 6 | +- 💡 Уверенно владеть git, иметь github аккаунт |
| 7 | +- 💡 Желательно docker, иметь рабочую машину на linux или mac |
| 8 | +- 💡 Любая среда разработки, IDE или редактор |
| 9 | + |
| 10 | +Ссылки на старый курс: |
| 11 | +- 🔗 [Структура со ссылками на видео и репозитории с примерами кода](NodeJS.md) |
| 12 | +- 🔗 [Для части лекций есть таймкоды и подробное оглавление](NodeJS-timecodes.md) |
| 13 | + |
| 14 | +Чем этот курс не является: это не чтение документации, не курс по фреймворкам, не курс по Metarhia, не повторение старого курса, не лайвкодинг и не мастеркласс, не стрим. Новый курс - это максимально сконцентрированная информация и практические задачи по разработке на чистой ноде но с хорошей архитектурой и использованием всех современных возможностей Node.js |
| 15 | + |
| 16 | +👉 Patreon: https://www.patreon.com/tshemsedinov |
| 17 | +👉 Видео обзор курса: https://youtu.be/moH8df67zAM |
| 18 | +👉 Вопросы на интервью: https://github.com/tshemsedinov/NodeJS-Interview-Questions |
| 19 | + |
| 20 | +## Содержание |
| 21 | + |
| 22 | +- ⭐ [Введение в технологию 🚀](https://youtu.be/mRvzgBGLVyM) |
| 23 | + - 🧑💻 [HTTP сервер для статики](https://github.com/HowProgrammingWorks/NodeServer/tree/master/native-2022) |
| 24 | + - 🔗 [Таблица поддержки возможностей в версиях ноды](https://node.green/) |
| 25 | + - 🔗 [Автоматизация проверки безопасности кода](https://snyk.io/) |
| 26 | + - 🔗 [Встроенный в npm аудит безопасности](https://docs.npmjs.com/cli/v8/commands/npm-audit) |
| 27 | + - 🧩 [Сравнение кластеризации HTTP, TCP и UDP на процессах и потоках](https://youtu.be/dum4b4EZktY) |
| 28 | + - 🧩 [Стрим про асинхронность и фазы ивентлупа](https://youtu.be/ND5HNHicACI) |
| 29 | +- ⭐ Структура приложений: системы модульности, пакеты и зависимости |
| 30 | + - 💻 [Системы модульности, CommonJS, ESModules, реализация своей системы модульности](https://github.com/HowProgrammingWorks/Modularity) |
| 31 | + - 💻 [Пакеты и их загрузка в разных системах модульности](https://github.com/HowProgrammingWorks/Packages) |
| 32 | +- ⭐ Архитектура приложений: слои и внедрение зависимостей |
| 33 | + - 💻 [Пошаговый рефакторинг от мидлварей до слоеной архитектуры](https://github.com/HowProgrammingWorks/DDD) |
| 34 | + - 🧩 [Почему мидлвари это плохо](https://youtu.be/RS8x73z4csI) |
| 35 | +- ⭐ Layers and Low Coupling на примере конфига и транспорта |
| 36 | + - 💻 [Примеры кода "A", "B" и "C" к лекции](https://github.com/HowProgrammingWorks/DDD) |
| 37 | +- ⭐ Базы данных, модель, заголовки .d.ts и линтеры |
| 38 | +- ⭐ Криптография: crypto, хеширование паролей с солью, session token, UUID, случайные числа |
| 39 | + - 💻 Реализация `randomPrefetcher` из библиотеки `metautil`: https://github.com/metarhia/metautil/blob/v3.7.0/lib/crypto.js |
| 40 | + - 💻 Упрощенное хеширование: https://github.com/HowProgrammingWorks/DDD/blob/master/JavaScript/d-messenger/lib/common.js |
| 41 | + - 💻 Полноценное хеширование: https://github.com/metatech-university/NodeJS-Pure/blob/main/lib/common.js |
| 42 | + - 💻 Генерация UUID: https://nodejs.org/api/crypto.html#cryptorandomuuidoptions |
| 43 | + - 🔗 Документация по `node:crypto`: https://nodejs.org/api/crypto.html |
| 44 | +- ⭐ [Применение Chat GPT в оптимизации JavaScript для Node.js](https://youtu.be/Ebrzqj8cGUY) |
| 45 | + - 💻 [Chunk encode/decode with typed arrays](https://github.com/HowProgrammingWorks/ChatGPT/tree/main/JavaScript/1-Chunk) |
| 46 | + - 💻 [Promise chain and async code optimization](https://github.com/HowProgrammingWorks/ChatGPT/tree/main/JavaScript/2-Promise) |
| 47 | + - 💻 [Crypto random prefetcher](https://github.com/HowProgrammingWorks/ChatGPT/tree/main/JavaScript/3-Prefetcher) |
| 48 | +- ⭐ Структура классов сервера и GoF паттерны в Node.js |
| 49 | +- ⭐ Подсистема `Authentication` |
| 50 | +- ⭐ Подсистема `Role Based Access Control` |
| 51 | + - Системы прав ACL, ABAC, RBAC, и проектирование нашей системы прав для курса |
| 52 | +- ⭐ Стримы Readable, Writable, Transform, открытый конструктор, буферизация, backpressure |
| 53 | + - 💻 Примеры кода: https://github.com/HowProgrammingWorks/Streams/tree/master/JavaScript |
| 54 | +- ⭐ Инфраструктура и инструментарий: тайпинги, тестирование, линтеры, CI/CD, встроенный testing framework |
| 55 | +- ⭐ Работа с ошибками и исключениями, `Graceful shutdown` в Node.js, `unhandled exceptions`, `async stack trace` |
| 56 | + - 💻 Async stack trace: https://github.com/HowProgrammingWorks/StackTrace/blob/master/JavaScript/6-pass-through.js |
| 57 | + - 💻 Graceful shutdown: https://github.com/HowProgrammingWorks/GracefulShutdown |
| 58 | +- ⭐ Асинхронное, реактивное и параллельное программирование |
| 59 | + - ✨ Обзор асинхронного программирования в Node.js: https://youtu.be/hY6Z6qNYzmc |
| 60 | + - 💻 Разные контракты: https://github.com/HowProgrammingWorks/AsynchronousProgramming |
| 61 | + - 💻 Таймеры: https://github.com/HowProgrammingWorks/Timers |
| 62 | + - 💻 EventEmitter: https://github.com/HowProgrammingWorks/EventEmitter |
| 63 | + - 💻 Промисы: https://github.com/HowProgrammingWorks/Promise |
| 64 | + - 💻 Async/await: https://github.com/HowProgrammingWorks/AsyncAwait |
| 65 | + - 💻 Асинхронные адаптеры: https://github.com/HowProgrammingWorks/AsyncAdapter |
| 66 | + - 💻 Асинхронные итераторы: https://github.com/HowProgrammingWorks/AsyncIterator |
| 67 | + - 💻 Thenable: https://github.com/HowProgrammingWorks/Thenable |
| 68 | + - 💻 Асинхронная очередь: https://github.com/HowProgrammingWorks/ConcurrentQueue |
| 69 | + - 💻 Паттерн открытый конструктор (Revealing Constructor): https://github.com/HowProgrammingWorks/RevealingConstructor |
| 70 | +- ⭐ Работа с файлами и файловыми потоками, наблюдение за файловой системой |
| 71 | + - ✨ Работа с файлами, буферами и файловыми потоками: https://youtu.be/eQGBS15vUac |
| 72 | + - 💻 Работа с файлами: https://github.com/HowProgrammingWorks/Files |
| 73 | + - 💻 Файловые потоки: https://github.com/HowProgrammingWorks/Streams |
| 74 | + - 💻 Буферы: https://github.com/HowProgrammingWorks/Buffers |
| 75 | + - 💻 Наблюдение за файлами: https://github.com/HowProgrammingWorks/FilesystemWatch |
| 76 | +- ⭐ Принципы `GRASP` и `SOLID` в `JavaScript` с адаптацией для Node.js |
| 77 | + - ✨ GRASP принципы с адаптацией для JavaScript и Node.js: https://youtu.be/ExauFjYV_lQ |
| 78 | + - 💻 Information Expert: https://github.com/HowProgrammingWorks/InformationExpert |
| 79 | + - 💻 Coupling and Cohesion: https://github.com/HowProgrammingWorks/CouplingCohesion |
| 80 | + - 💻 Pure Fabrication: https://github.com/HowProgrammingWorks/PureFabrication |
| 81 | + - 💻 Single responsibility: https://github.com/HowProgrammingWorks/SingleResponsibility |
| 82 | + - 💻 Liskov substitution: https://github.com/HowProgrammingWorks/LiskovSubstitution |
| 83 | + - 💻 IoC and DI: https://github.com/HowProgrammingWorks/InversionOfControl |
| 84 | +- ⭐ Вопросы безопасности: `DoS`, `XSS`, `Path traversal`, `CSRF`, `SQL`-инъекции |
| 85 | + - ✨ Безопасность приложений Node.js: https://youtu.be/Pdfo1G-gI6s |
| 86 | + - 🔗 Слайды: https://www.slideshare.net/tshemsedinov/nodejs-security-199004963 |
| 87 | +- ⭐ C/C++ Addons, Node-API (n-api), WebAssembly: Rust, WAT, C++, AssemblyScript |
| 88 | + - 💻 N-API examples for C++ and Rust: https://github.com/HowProgrammingWorks/Node-API |
| 89 | + - 💻 WebAssembly for C++, Rust, WAT, and AssemblyScript https://github.com/HowProgrammingWorks/WebAssembly |
| 90 | + - 💻 In-place callback solution: https://github.com/tshemsedinov/wasm-import |
| 91 | +- ⭐ Трекинг асинхронных контекстов: AsyncLocalStorage, AsyncResource |
| 92 | + - 💻 Примеры использования AsyncLocalStorage и AsyncResource: https://github.com/HowProgrammingWorks/AsyncContextTracking |
| 93 | +- ⭐ Проектирование API и проверка контрактов в рантайме |
| 94 | + - ✨ Контрактное программирование: https://youtu.be/K5_kSUvbGEQ |
| 95 | + - 💻 Примеры кода: https://github.com/HowProgrammingWorks/Contract |
| 96 | +- ⭐ Вынесение подсистем как отдельных микросервисов |
| 97 | +- ⭐ `Performance hooks`, телеметрия ресурсов и оптимизация: I/O bound, CPU bound, memory bound, профилирование |
| 98 | +- ⭐ `Serverless` и облачные `FaaS` решения на базе Node.js |
| 99 | + - ✨ Serverless Clouds (FaaS) и изоляция контекстов запросов в Node.js: https://youtu.be/x-Rd6fPV6L8 |
| 100 | + - 🔗 Слайды: https://www.slideshare.net/tshemsedinov/serverless-clouds-faas-and-request-context-isolation-in-nodejs |
| 101 | +- ⭐ Приложения, приближенные к реальному времени, Websocket, интерактивность и коллаборативные приложения |
| 102 | + - 💻 Серверная реализация |
| 103 | + - 💻 Клиентская реализация на C++ для Node.js 21 |
| 104 | + - 💻 Интерактивность и коллоборативные приложения |
| 105 | +- ⭐ Распределенные системы, высоконагруженные системы, балансировка нагрузки, кластеризация и масштабирование, IP sticky |
| 106 | + - ✨ Доклад по высоконагруженным системам: https://youtu.be/7tfZDABPvVs |
| 107 | + - ✨ HTTP сервер на Node.js (routing, cluster, IP sticky): https://youtu.be/7Ufxj0oTaUo |
| 108 | + - 💻 Примеры серверов: https://github.com/HowProgrammingWorks/NodeServer |
| 109 | +- ⭐ Изоляция кода и данных в Node.js: `vm`, `v8`, защита `global`, контекстов, модулей и прототипов от патчинга |
| 110 | +- ⭐ Структура и архитектура проекта, слои, `DDD`, `Clean architecture`, связанность и связность кода, протекание абстракций |
| 111 | +- ⭐ Реализация HTTP Proxy |
| 112 | + - 📢 [Разбор примеров кода Timur Sevimli](https://youtu.be/4yF6hlxiIic) |
| 113 | + - 💻 Примеры кода из видео: https://github.com/HowProgrammingWorks/ProxyHTTP |
| 114 | +- ⭐ Сборка Node.js приложений в single executable |
| 115 | +- ⭐ Автоматическая перезагрузка процессов с --watch |
| 116 | +- ⭐ Обзор Web API портированнного в Node.js: Web Crypro, Web Streams, Intl |
| 117 | +- ⭐ Встроенная система Permissions для ограничения доступа к файловой системе, сети, другим API |
| 118 | + |
| 119 | +План курса формируется. Тут появится еще много тем в ближайшее время. |
| 120 | + |
| 121 | +# Доступ |
| 122 | + |
| 123 | +🎫 Регистрация: Следите за новостями, когда откроется регистрация, на курс можно будет подписаться тут https://www.patreon.com/tshemsedinov |
| 124 | + |
| 125 | +👉 Подписывайтесь на https://t.me/metarhia и https://www.youtube.com/@TimurShemsedinov чтобы следить за новостями. |
0 commit comments