Перейти к содержанию

От веб-приложения к продукту: 100 уроков

Эта партия продолжает актуальный веб: 100 уроков восьми новых курсов. В каждой серии общий учебный проект, последовательное объяснение, код и ожидаемый результат. Подготовлены оглавления, переходы между уроками и архивы исходников.

Материалы опубликованы. Примеры подготовлены по официальной документации, но ещё не запускались. Показанные результаты ожидаемые; техническая проверка учебных приложений остаётся отдельным этапом.

Восемь курсов

Курс Уроков Общая задача
SaaS для нескольких компаний 16 Организации, участники, роли, изоляция PostgreSQL, аудит и жизненный цикл.
Платежи, подписки и платные функции 12 Тарифы, платежные состояния, повторные уведомления, продление, отмена и доступ.
Kubernetes для веб-разработчика 14 Локальный кластер, собственный API, конфигурация, probes, ресурсы и обновление.
Temporal: длительные процессы 12 Согласование, таймеры, сигналы, повторы, отмена, компенсация и история.
Svelte и SvelteKit: кабинет читателя 14 Закладки и прогресс, серверные данные, формы, SSR и доступность.
ClickHouse: собственная аналитика сайта 12 События, повторы и задержки, воронки, возвращаемость и агрегаты.
Многоязычный сайт: переводы, URL и SEO 10 Словари, Intl, Markdown, старые адреса, языковые альтернативы и редактура.
Rust и WebAssembly: вычисления в браузере 10 Договор текста, память, ошибки, Wasm, Worker, запасной движок и измерение.

Учебные маршруты

Разработчик SaaS: ASP.NET Core → PostgreSQL → единый вход → рабочие пространства → биллинг → Temporal.

Сопровождение приложения: Linux → Docker → GitLab CI/CD → Kubernetes → наблюдаемость.

Учебная платформа: Markdown или Astro → кабинет SvelteKit → многоязычность → аналитика ClickHouse. Для обработки файлов дополнительно рассмотрите Rust и WebAssembly.

Маршруты связывают знания. Приложения разных серий не являются автоматически совместимыми модулями; конкретные границы интеграции описаны в оглавлениях и README архивов. SaaS и биллинг развивают общую модель «Пространства», но перенос изменений в существующую базу требует отдельной подготовки.

Все 100 уроков

SaaS для нескольких компаний: ASP.NET Core + PostgreSQL

  1. Организация как граница данных
  2. Каркас ASP.NET Core и соединение с PostgreSQL
  3. Таблицы организаций, членства и проектов
  4. Доверенный контекст выбранной компании
  5. Выборки только внутри своей организации
  6. Создание и изменение без смены владельца
  7. Составной внешний ключ для связанных объектов
  8. Роли участников и права отдельных операций
  9. Приглашение с ограниченным сроком действия
  10. Версия проекта и конфликт двух изменений
  11. Row-Level Security как дополнительная защита
  12. Контекст PostgreSQL внутри транзакции
  13. Компания в фоновом задании
  14. Аудит завершённых действий организации
  15. Частный экспорт данных компании
  16. Приостановка и завершение работы организации

Платежи, подписки и платные функции

  1. Деньги, заказ и платеж — разные объекты
  2. Версия тарифа и неизменяемая цена заказа
  3. Идемпотентное создание заказа
  4. Адаптер провайдера и повтор создания платежа
  5. Переходы состояния платежа
  6. Входящее уведомление и повтор доставки
  7. Сверка платежей после пропущенного уведомления
  8. Подписка и границы календарного месяца
  9. Планировщик повторной оплаты
  10. Отмена продления и незавершённого платежа
  11. Возврат с собственным ключом и остатком суммы
  12. Платная функция по действующему праву

Kubernetes для веб-разработчика

  1. Желаемое состояние веб-приложения в Kubernetes
  2. Собственные образы API и frontend «Площадки»
  3. Локальный кластер и первый Pod API
  4. Deployment, ReplicaSet и восстановление копий API
  5. Service, DNS и готовые адресаты API
  6. Браузерный маршрут и граница Gateway API
  7. ConfigMap, Secret и обновление окружения процесса
  8. Startup, readiness, liveness и завершение API
  9. Requests, limits и причины Pending
  10. Namespace и права наблюдателя через RBAC
  11. PVC и граница постоянного хранения
  12. Новая версия API, rollout и rollback
  13. Журналы, ручное масштабирование и условия HPA
  14. Передача Kubernetes-проекта и границы восстановления

Temporal: длительные процессы и восстановление после сбоев

  1. Длительный процесс как Workflow: проект «Согласование»
  2. Минимальные Workflow, Activity, Worker и Client
  3. Task Queue и жизненный цикл Worker
  4. Устойчивый таймер и восстановление ожидания
  5. Signal редактора, Query состояния и срок решения
  6. Retries, timeouts и heartbeat внешней операции
  7. Идемпотентная Activity при потере ответа
  8. Cancel Workflow и сотрудничество Activity
  9. Компенсация брони и ручное согласование ошибки
  10. История событий и детерминированное воспроизведение
  11. Patched и совместимое изменение Workflow
  12. Передача длительного процесса и пределы восстановления

Svelte и SvelteKit: кабинет читателя

  1. Кабинет читателя и границы SvelteKit
  2. Состояние и вычисления в Svelte 5
  3. Компонент карточки и обратные вызовы
  4. Маршруты уроков и общая компоновка
  5. Загрузка страницы и серверные данные
  6. SSR, prerender и личный кабинет
  7. Браузерные эффекты и сохранение предпочтений
  8. Поиск и фильтры в URL
  9. Серверные действия для закладок
  10. Проверка формы и восстановление ввода
  11. Улучшение формы через use:enhance
  12. Сессия и владелец истории читателя
  13. Ошибки кабинета и доступный интерфейс
  14. Передача проекта «Маршрут»

ClickHouse: собственная аналитика сайта

  1. ClickHouse и модель аналитики сайта
  2. Контракт события и минимизация данных
  3. Таблица событий и типы ClickHouse
  4. Пакетная вставка и подтверждение доставки
  5. Ключ сортировки и партиции событий
  6. Повторы и поздние события
  7. Счётчики событий и качество данных
  8. Воронка просмотра и завершения
  9. Когорты и удержание читателей
  10. Материализованные представления и повторы
  11. TTL и срок хранения аналитики
  12. Экспорт отчёта и передача «Событий»

Многоязычный сайт: переводы, URL и SEO

  1. Язык, локаль и постоянный адрес
  2. Словарь интерфейса и устойчивые ключи
  3. Множественные формы через Intl.PluralRules
  4. Даты, числа и сортировка по локали
  5. Переводы Markdown и единый ID статьи
  6. Переключение языка без потери страницы
  7. Canonical, hreflang и карта языковых версий
  8. Изменение оригинала и устаревший перевод
  9. Направление текста и доступный интерфейс
  10. Выпуск многоязычной библиотеки

Rust и WebAssembly: вычисления в браузере

  1. Задача для WebAssembly и контракт анализатора
  2. Строки, заимствование и владение в Rust
  3. Result и ошибки на границе JavaScript
  4. Сборка Rust-модуля для браузера
  5. Асинхронная загрузка и интерфейс анализатора
  6. Числовые массивы и стоимость передачи данных
  7. Web Worker и актуальный результат вычисления
  8. Запасная реализация с тем же контрактом
  9. Как сравнивать JavaScript и WebAssembly
  10. Передача Wasm-модуля в веб-проект

Все курсы.