Веб-приложения: данные, синхронизация и интерактивность
Эта партия продолжает курсы от веб-приложения к продукту: 100 новых уроков восьми курсов. Каждый курс развивает общий учебный пример и включает последовательное оглавление, переходы между уроками и полный архив исходников.
Все материалы опубликованы. Учебные приложения, зависимости, тесты и измерения не запускались. Примеры написаны по первичной документации; описанные реакции и результаты ожидаемые. Техническая проверка учебных приложений остаётся отдельным этапом.
Восемь курсов
| Курс | Уроков | Общая задача |
|---|---|---|
| Angular: кабинет заявок | 16 | Компоненты, signals, DI, Router, формы, HttpClient, RxJS и состояния интерфейса. |
| NestJS: API заявок | 14 | Модули, providers, DTO, guards, PostgreSQL, транзакции, конфликты и OpenAPI. |
| OpenSearch: поиск по библиотеке | 14 | Документы, mapping, Bulk, технические термины, запросы, фильтры, facets и reindex. |
| RabbitMQ: доставка событий | 12 | Очереди, маршруты, ack, confirms, retries, DLQ, идемпотентность и outbox. |
| Local-first: заметки и синхронизация | 14 | IndexedDB, атомарная очередь, стабильные операции, revisions, cursor, конфликты и удаление. |
| Argo CD: локальный GitOps релиз | 10 | Git источник, AppProject, manual sync, drift, Kustomize, продвижение и откат. |
| SVG и Canvas: графический редактор | 10 | Модель фигур, указатель, камера, слои, история, JSON и экспорт SVG/PNG. |
| Web Audio: локальная аудиомастерская | 10 | Локальный звук, кадры, граф, волна, фрагменты, переходы, OfflineAudioContext и WAV. |
Учебные маршруты
Кабинет и сервер: Angular → NestJS. Оба курса используют договор «Диспетчера». Angular можно изучать независимо с fixture API; подключение серверного режима описано в исходниках. Nest включает собственные SQL и HTTP-примеры.
Данные и доставка: PostgreSQL → OpenSearch и RabbitMQ. Поиск развивает библиотеку Markdown, а очередь — самостоятельный проект доставки событий. Это связанные знания, не автоматически соединённое приложение.
Работа при недоступной сети: Local-first Блокнот — от атомарного локального сохранения до явной синхронизации и конфликтов. Курс посвящён изменяемым данным; кеш оболочки и новый офлайн-вход не реализованы.
Сопровождение релиза: Docker → Kubernetes → Argo CD. Последняя серия продолжает «Площадку», но включает самостоятельный конечный комплект приложения и локального Git источника.
Браузерные инструменты: редактор схем и аудиомастерская — две отдельные практики нативных API. Первая создаёт JSON/SVG/PNG, вторая обрабатывает локальный звуковой фрагмент и записывает WAV.
Маршруты связывают предпосылки. Конкретные версии, границы интеграции и непроверенные части перечислены в оглавлениях и README. Архивы содержат полные итоговые исходники, а не работающие внешние службы или выполненные снимки всех шагов.
Все 100 уроков
Angular 22: кабинет заявок «Диспетчер»
- Компонент Angular и модель заявки
- Signals и изменение локального состояния
- Computed и отбор заявок
- Входные данные компонента строки
- DI и общая учебная сессия
- Router и адрес отдельной заявки
- Ленивые страницы и границы загрузки
- Reactive forms и независимый черновик
- Проверка формы и понятные сообщения
- HttpClient и локальный fixture API
- RxJS и актуальность ответа списка
- Фильтры списка в URL
- Состояния страницы и доступные ошибки
- PATCH и конфликт версии редактора
- Учебная роль и границы авторизации UI
- Передача Angular-кабинета и подключение Nest
NestJS 12: API заявок «Диспетчер»
- NestJS и договор API диспетчера
- Модули Nest и область доступности provider
- Providers и разделение HTTP, правил и SQL
- Контроллер заявок и HTTP-маршруты
- DTO и проверка тела PATCH
- Query DTO и буквальный поиск заявок
- Guards и серверное право изменения
- Interceptor и идентификатор запроса
- PostgreSQL и жизненный цикл пула
- Репозиторий и параметризованные запросы
- Транзакция изменения и конфликт version
- Фильтр исключений и единый ответ отказа
- OpenAPI и согласованная документация API
- Конфигурация и передача NestJS API
Индекс: OpenSearch для Markdown-библиотеки
- Поисковый индекс как отдельная копия библиотеки
- Подготовка Markdown для поисковой записи
- Явные mappings для текста и точных значений
- Русский анализатор и технические обозначения
- Пакетный импорт и ошибки отдельных документов
- Поиск по заголовку и основному тексту
- Фильтры рубрики, метки и видимости
- Фасеты и область подсчёта групп
- Подсветка совпадений без исполнения HTML
- Управление ранжированием через контрольные запросы
- Изменения и удаления через манифест импорта
- Перенос схемы и атомарное переключение aliases
- Публичный gateway и пределы поискового запроса
- Сопровождение и передача проекта Индекс
Доставка: события публикации через RabbitMQ
- Событие публикации и границы доставки
- Соединение, канал и долговечная топология
- Издатель сообщения и свойства конверта
- Exchanges и независимые маршруты получателей
- Подтверждение после фиксации эффекта
- Publisher confirms и неизвестный исход публикации
- Отложенный повтор для одного обработчика
- Очередь отказов и осознанный повтор
- Идемпотентный эффект и квитанция inbox
- Восстановление соединения и порядок редакций
- API публикации и transactional outbox
- Наблюдение и передача проекта Доставка
Local-first заметки и явная синхронизация
- Локальная запись и границы синхронизации
- Схема IndexedDB для записей и очереди
- Атомарное сохранение заметки и outbox
- Стабильный ID операции и неизменяемый снимок
- Серверный revision и журнал изменений
- Отправка outbox и подтверждение снимка
- Получение изменений и атомарный cursor
- Сравнение версий и ручное объединение
- Удаление заметки и tombstone
- Повторы, отключение сети и прогресс
- Несколько вкладок и несколько устройств
- Квоты браузера и экспорт заметок
- Аккаунт, локальная база и прекращение сессии
- Передача Блокнота и сценарии восстановления
Argo CD: локальный GitOps релиз
- Git как источник желаемого состояния
- Локальный bootstrap и читаемый Git источник
- Application и границы AppProject
- Первый manual sync и состояние приложения
- Diff и drift после ручного изменения
- Kustomize base и окружения dev/stage
- Продвижение релиза из dev в stage
- Rollback revision и исправление Git
- Prune, полномочия и ссылки на Secret
- Передача GitOps проекта и восстановление источника
SVG и Canvas: графический редактор
- Документ, фигура и координаты редактора
- SVG из данных, без HTML-строк
- Координаты указателя и попадание в фигуру
- Перемещение и команды изменения
- Масштаб и перемещение камеры
- Выделение, порядок и свойства фигур
- Отмена действий и границы операции
- Сохранение документа и проверка импорта
- Экспорт изображения через Canvas
- Доступное управление и передача редактора
Web Audio: локальная аудиомастерская
- Звуковой файл, семпл и контракт редактора
- Декодирование локального файла
- AudioContext и управляемое воспроизведение
- Звуковой граф и громкость без скачка
- Волна и временная шкала
- Выделение и воспроизведение фрагмента
- Плавное начало и окончание фрагмента
- OfflineAudioContext и результат обработки
- WAV PCM16: от семплов к файлу
- Ограничения, ошибки и передача аудиоредактора