Веб-приложения: данные, синхронизация и интерактивность
Эта партия продолжает курсы от веб-приложения к продукту: 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 и модель заявки
- Angular: Signals и изменение локального состояния
- Angular: Computed и отбор заявок
- Angular: входные данные компонента строки
- Angular: DI и общая учебная сессия
- Angular: Router и адрес отдельной заявки
- Angular: ленивые страницы и границы загрузки
- Angular: Reactive forms и независимый черновик
- Angular: проверка формы и понятные сообщения
- Angular: HttpClient и локальный fixture API
- Angular: RxJS и актуальность ответа списка
- Angular: фильтры списка в URL
- Angular: состояния страницы и доступные ошибки
- Angular: PATCH и конфликт версии редактора
- Angular: учебная роль и границы авторизации UI
- Передача Angular-кабинета и подключение Nest
NestJS 12: API заявок «Диспетчер»
- NestJS и договор API диспетчера
- Модули Nest и область доступности provider
- NestJS: Providers и разделение HTTP, правил и SQL
- NestJS: контроллер заявок и HTTP-маршруты
- NestJS: DTO и проверка тела PATCH
- NestJS: Query DTO и буквальный поиск заявок
- NestJS: Guards и серверное право изменения
- NestJS: Interceptor и идентификатор запроса
- NestJS: PostgreSQL и жизненный цикл пула
- NestJS: репозиторий и параметризованные запросы
- NestJS: транзакция изменения и конфликт version
- NestJS: фильтр исключений и единый ответ отказа
- NestJS: OpenAPI и согласованная документация API
- Конфигурация и передача NestJS API
Индекс: OpenSearch для Markdown-библиотеки
- OpenSearch: поисковый индекс как отдельная копия библиотеки
- OpenSearch: подготовка Markdown для поисковой записи
- OpenSearch: явные mappings для текста и точных значений
- OpenSearch: русский анализатор и технические обозначения
- OpenSearch: пакетный импорт и ошибки отдельных документов
- OpenSearch: поиск по заголовку и основному тексту
- OpenSearch: фильтры рубрики, метки и видимости
- OpenSearch: фасеты и область подсчёта групп
- OpenSearch: подсветка совпадений без исполнения HTML
- OpenSearch: управление ранжированием через контрольные запросы
- OpenSearch: изменения и удаления через манифест импорта
- OpenSearch: перенос схемы и атомарное переключение aliases
- OpenSearch: публичный gateway и пределы поискового запроса
- OpenSearch: сопровождение и передача проекта Индекс
Доставка: события публикации через RabbitMQ
- RabbitMQ: событие публикации и границы доставки
- RabbitMQ: соединение, канал и долговечная топология
- RabbitMQ: издатель сообщения и свойства конверта
- RabbitMQ: Exchanges и независимые маршруты получателей
- RabbitMQ: подтверждение после фиксации эффекта
- RabbitMQ: Publisher confirms и неизвестный исход публикации
- RabbitMQ: отложенный повтор для одного обработчика
- RabbitMQ: очередь отказов и осознанный повтор
- RabbitMQ: идемпотентный эффект и квитанция inbox
- RabbitMQ: восстановление соединения и порядок редакций
- RabbitMQ: API публикации и transactional outbox
- RabbitMQ: наблюдение и передача проекта Доставка
Local-first заметки и явная синхронизация
- Local-first приложение: локальная запись и границы синхронизации
- Local-first приложение: схема IndexedDB для записей и очереди
- Local-first приложение: атомарное сохранение заметки и outbox
- Local-first приложение: стабильный ID операции и неизменяемый снимок
- Local-first приложение: серверный revision и журнал изменений
- Local-first приложение: отправка outbox и подтверждение снимка
- Local-first приложение: получение изменений и атомарный cursor
- Local-first приложение: сравнение версий и ручное объединение
- Local-first приложение: удаление заметки и tombstone
- Local-first приложение: повторы, отключение сети и прогресс
- Local-first приложение: несколько вкладок и несколько устройств
- Local-first приложение: квоты браузера и экспорт заметок
- Local-first приложение: аккаунт, локальная база и прекращение сессии
- Local-first приложение: передача Блокнота и сценарии восстановления
Argo CD: локальный GitOps релиз
- Argo CD: Git как источник желаемого состояния
- Argo CD: локальный bootstrap и читаемый Git источник
- Argo CD: Application и границы AppProject
- Argo CD: первый manual sync и состояние приложения
- Argo CD: Diff и drift после ручного изменения
- Argo CD: Kustomize base и окружения dev/stage
- Argo CD: продвижение релиза из dev в stage
- Argo CD: Rollback revision и исправление Git
- Argo CD: Prune, полномочия и ссылки на Secret
- Argo CD: передача GitOps проекта и восстановление источника
SVG и Canvas: графический редактор
- SVG-редактор: документ, фигура и координаты редактора
- SVG из данных, без HTML-строк
- SVG-редактор: координаты указателя и попадание в фигуру
- SVG-редактор: перемещение и команды изменения
- SVG-редактор: масштаб и перемещение камеры
- SVG-редактор: выделение, порядок и свойства фигур
- SVG-редактор: отмена действий и границы операции
- SVG-редактор: сохранение документа и проверка импорта
- Экспорт изображения через Canvas
- SVG-редактор: доступное управление и передача редактора
Web Audio: локальная аудиомастерская
- Web Audio API: звуковой файл, семпл и контракт редактора
- Web Audio API: декодирование локального файла
- AudioContext и управляемое воспроизведение
- Web Audio API: звуковой граф и громкость без скачка
- Web Audio API: волна и временная шкала
- Web Audio API: выделение и воспроизведение фрагмента
- Web Audio API: плавное начало и окончание фрагмента
- OfflineAudioContext и результат обработки
- Экспорт WAV PCM16 в браузере: от семплов к файлу
- Web Audio API: ограничения, ошибки и передача аудиоредактора