- Отличные знания JavaScript на уровне текущей спецификации ESNext
- Общие знания по программной инженерии
- ООП
- функциональное и реактивное
- программирование
- обобщенное программирование
- агрегация и композиция классов
- модули и зависимости
- инверсия управления и внедрение зависимостей
- принципы
- GRASP и SOLID
- общее понимание паттернов GoF и дополнительный
- часто
- применяемых в Node.js API
- например (открытый конструктор
- наблюдатель
- цепочка
- ответственности
- стратегия) и все это применительно к JavaScript и Node.js
- контрактное программирование
- обзор антипаттернов
- понимание пределов возможностей
- JavaScript и его слабых мест
- оптимизации при выполнении в v8
- слабые ссылки
- FinalizationRegistry
- Atomics
- SharedArrayBuffer
- Асинхронное программирование
- контракты callback-last error-first
- Thenable
- Promise
- асинхронные итераторы
- EventEmitter
- синтаксис async/await
- Streams
- асинхронная композиция и асинхронная очередь
- паттерн реактор
- фазы ивент-лупа
- thread pool
- принцип неблокирующего ввода/вывода
- таймеры
- обработка ошибок в
- асинхронном коде и оптимизация асинхронного кода
- состояние гонки и доступ к
- shared state в асинхронном программировании
- многопоточность и shared memory
- связь параллельного и асинхронного программирования
- семафоры и мьютексы
- async
- hooks для Node.js
- Знания базовых возможностей платформы Node.js
- возможности встроенных библиотек (v8 vmprocess child_process worker_threads fs crypto events os path)
- и встроенных классов (Buffer
- EventEmitter
- AbortController
- MessageChannel)
- системы модулей CommonJs и EcmaScript
- управление зависимостями
- поддержка протоколов: http
- https
- http2
- tcp
- tls
- udp
- работа с websockets
- роутинг запросов
- контексты запросов и изоляция req
- res от кода предметной
- области
- как не допускать утечки памяти и ресурсов
- как выявлять их
- оптимизация
- для высоких нагрузок
- Serverless и FaaS
- QUIC и HTTP/3
- N-API
- аддоны на C++
- WASI
- строковая и бинарная сериализация и десериализация
- реализация сессий и
- контекстов пользователя
- диагностика состояния приложений и отладка
- Структура и архитектура бекенд приложений
- метрики
- вопросы надежности
- graceful shutdown
- логирование и конфигурирование
- обработка ошибок
- подход к
- построению transport agnostic API
- vm sandboxing
- v8 isolation
- межпроцессовое
- взаимодействие
- масштабирование и кластеризация
- балансировка нагрузки
- архитектуры: слоеная (layered / onion)
- микросервисная
- конвейерная (pipeline)
- гексагональная
- DDD
- чистая архитектура
- CQS
- CQRS и Event sourcing
- основы
- распределенных систем
- интерактивных и real-time приложений
- интроспекция
- рефлексия и скаффолдинг
- метапрограммирование
- мультипарадигменное
- программирование
- Основы безопасности
- DoS
- ReDoS
- XSS
- Path traversal
- SQLI
- CSRF
- работа с
- паролями и их хешами
- базовые понятия о криптографии
- Базы данных
- реляционные и NoSQL
- слой доступа к данным
- ORM vs Query
- builders
- Postgres и его система типов
- join
- explain
- индексы и оптимизация
- запросов
- foreign keys
- alternative keys
- referential integrity
- вложенные
- запросы
- exists
- having
- group
- bulk update/insert
- view
- функции
- автоинкремент
- ER диаграммы
- нормальные формы
- хранение JSON в БД
- Культура разработки и групповая работа
- рефакторинг
- практики ревью кода
- unit-тестирование
- системное и интеграционное тестирование
- общее понимание TDD
- CI/CD
- контейнеризация
- семантическое версионирование
- практики ведения
- репозиториев и работа с пакетными менеджерами
- тулинг для групповой работы