153 Commits
Author SHA1 Message Date
ddadmin 242a066f42 docs(links): исправлены ссылки после переноса в Gitea
Deploy MkDocs to VPS / deploy (push) Successful in 5s
- Зачем:
  - старые ссылки на GitHub-репозитории возвращали 404.
- Что:
  - ссылки на учебные стенды переведены на публичные репозитории Gitea.
  - отсутствующий jupyter-spark-docker заменён официальным Jupyter Docker Stacks.
  - ссылки на каталоги SQL и данных переведены на Gitea.
- Проверка:
  - mkdocs build --strict.
  - HTTP-проверка всех изменённых URL вернула 200.
2026-08-05 04:10:54 -04:00
ddadmin 4ad904efd0 docs(site): дополнены инструкции восстановления публикации
Deploy MkDocs to VPS / deploy (push) Successful in 13s
- Зачем:
  - runbook требовал незафиксированного контекста для первого деплоя и восстановления сайта на чистой VPS.
- Что:
  - добавлены prerequisites, установка пакетов, первый workflow, UFW и проверенный атомарный откат.
  - спецификация и PRD обновлены по факту завершённого переноса на VPS.
  - локальные команды Snap uv заменены на persistent Python venv.
- Проверка:
  - mkdocs build --strict выполнен через persistent venv пользователя gitea-runner.
  - последовательность rollback проверена на временном дереве releases и symlink.
2026-08-05 03:14:52 -04:00
ddmitry 690b1fdb25 Merge pull request 'fix(site): закрыта выдача сайта по IP' (#4) from docs/gitea-vps-site-runbook into main
Deploy MkDocs to VPS / deploy (push) Successful in 6s
Reviewed-on: #4
2026-08-05 09:55:03 +03:00
ddadmin 515e221c52 fix(site): закрыта выдача сайта по IP
- Зачем:
  - стандартный nginx-vhost отдавал welcome page по IP, а HTTPS по IP получал сертификат de.dementev.space.
- Что:
  - default vhost настроен на HTTP 404 и отказ TLS для IP и неизвестного SNI.
  - runbook дополнен точной процедурой Certbot, восстановлением и проверками.
  - завершённая задача публикации перенесена в раздел «Сделано».
- Проверка:
  - live и bootstrap-конфигурации прошли nginx -t; доменный HTTPS отдаёт 200, неизвестный Host — 404, TLS по IP отклоняется.
  - mkdocs build --strict выполнен через persistent venv пользователя gitea-runner.
2026-08-05 02:48:12 -04:00
ddmitry 4e67059f7a Merge pull request 'fix(site): сборка runner переведена со Snap uv на venv' (#3) from fix/gitea-runner-python-venv into main
Deploy MkDocs to VPS / deploy (push) Successful in 6s
Reviewed-on: #3
2026-08-04 23:16:48 +03:00
ddadmin 2a1da643c1 fix(site): сборка runner переведена со Snap uv на venv
- Зачем:
  - Snap uv не запускался внутри ограниченного systemd-сервиса без cap_dac_override.
- Что:
  - workflow переведён на постоянный Python venv с pinned requirements.
  - повторные сборки проверяют зависимости через pip без их переустановки.
  - Snap удалён из PATH runner, runbook дополнен python3-venv и описанием окружения.
- Проверка:
  - от имени gitea-runner дважды выполнены pip install, pip check и mkdocs build --strict; второй запуск переиспользовал окружение.
  - обновлённый systemd unit прошёл systemd-analyze verify и успешно перезапущен.
2026-08-04 16:15:30 -04:00
ddmitry 09f2c839f7 Merge pull request 'ci(site): добавлена публикация через Gitea Actions' (#2) from infra/gitea-vps-site-publishing into main
Deploy MkDocs to VPS / deploy (push) Failing after 3s
Reviewed-on: #2
2026-08-04 23:03:13 +03:00
ddmitry c5e9bfe6b3 Merge pull request 'docs(project): согласована публикация сайта через Gitea и VPS' (#1) from docs/gitea-vps-site-publishing into main
Deploy MkDocs to GitHub Pages / build (push) Canceled after 0s
Deploy MkDocs to GitHub Pages / deploy (push) Canceled after 0s
Reviewed-on: #1
2026-08-04 22:59:17 +03:00
ddadmin 1edda33f87 ci(site): добавлена публикация через Gitea Actions
- Зачем:
  - основной сайт не должен зависеть от заблокированной учётной записи GitHub.
- Что:
  - добавлены строгая сборка и атомарная публикация через repository-scoped runner.
  - добавлены воспроизводимые конфигурации systemd, nginx и эксплуатационный runbook.
  - проектная документация и ссылки на репозиторий обновлены для Gitea.
- Проверка:
  - выполнены mkdocs build --strict, Bash/YAML-проверки и локальный HTTP smoke-check.
  - runner зарегистрирован, ограничен средствами systemd и виден в Gitea как online.
2026-08-04 15:16:33 -04:00
ddadmin 8584fc225b docs(project): добавлена спецификация публикации сайта
- Зачем:
  - нужен согласованный вариант публикации сайта без зависимости от GitHub Pages.
- Что:
  - описан контур Gitea Actions, host runner, nginx и резерв на GitHub Pages.
  - в архитектурный документ добавлена ссылка на новую спецификацию.
- Проверка:
  - git diff --cached --check.
2026-08-04 10:01:58 -04:00
ddadminandClaude Fable 5 1ae670410b feat(docs): добавлен подраздел «Linux и терминал» в базовые инструменты
Deploy MkDocs to GitHub Pages / build (push) Canceled after 0s
Deploy MkDocs to GitHub Pages / deploy (push) Canceled after 0s
- Зачем:
  - единственный пробел заявленной базы: все стенды консольные, а в
    роадмапе не было ни одного упоминания bash/ssh/командной строки (P1).
- Что:
  - в блок «Git и базовые инструменты» добавлен подраздел с видео-интро,
    тремя статьями (навигация и grep, права файлов, ssh) и опциональным
    интерактивным курсом Hexlet; примечание про WSL для Windows.
  - критерии готовности блока дополнены терминалом, grep и правами/ssh;
    в оглавление добавлен Linux; задача перенесена в «Сделано» в TODO.
- Проверка:
  - mkdocs build --strict — сборка без ошибок;
  - все ссылки проверены на живость и соответствие содержимого
    (curl --noproxy для RU-доменов, покрытие видео — по субтитрам).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 22:46:46 +03:00
ddadminandClaude Fable 5 6983c25d10 ci(docs): добавлена еженедельная проверка внешних ссылок (lychee)
- Зачем:
  - в роадмапе ~100 внешних ссылок, репозиторий правится редко — ссылки
    гниют молча (пункт P1 из project/TODO.md).
- Что:
  - добавлен lychee.toml: игнор-лист доменов, режущих ботов (habr, stepik,
    leetcode, realpython), YouTube и t.me; исключены project/ и site/.
  - добавлен workflow check-links.yml: cron по понедельникам, при битых
    ссылках создаёт или обновляет issue с меткой link-check, keepalive
    защищает cron от отключения после 60 дней неактивности.
  - исправлена битая ссылка на доки datetime в README: перевод /ru/
    на docs.python.org отдаёт 404, заменена на английскую версию.
- Проверка:
  - docker run --rm -v "$PWD:/input" -w /input lycheeverse/lychee
    --no-progress './**/*.md' — 177 ссылок, 0 ошибок, 56 исключено.
  - mkdocs build --strict — без ошибок.
  - адверсариальное ревью субагентом, 2 раунда — APPROVED.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 22:01:45 +03:00
ddadminandClaude Fable 5 ad60d0c738 docs(project): TODO приоритизирован и подключён к AGENTS.md
- Зачем:
  - project/TODO.md не упоминался в AGENTS.md — агенты и участники
    его не находили при планировании работ;
  - список не имел приоритетов, выполненное не отмечалось
- Что:
  - в AGENTS.md добавлен указатель на project/TODO.md как бэклог проекта;
  - задачи сгруппированы по приоритетам P1–P3: наверху CI-проверка
    ссылок и подраздел «Linux и терминал», ниже перенос учебника
    Airflow, GA, трудозатраты, шаблон прогресса, затем dbt-стенд,
    абзац про DQ и бейджи статусов (помечены сомнения);
  - раздел «Сделано»: пункт про сложность алгоритмов закрыт
    коммитом 6f61c0e
- Проверка:
  - mkdocs build --strict (без ошибок; project/ исключён из сайта)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 19:54:51 +03:00
ddadminandClaude Fable 5 afcce5dc4a docs: выровнены введения секций ClickHouse и Lakehouse
- Зачем:
  - введение Lakehouse было одним громоздким абзацем, тяжело читалось;
  - секция ClickHouse, наоборот, начиналась сразу со списка ссылок
- Что:
  - введение Lakehouse разбито на три коротких абзаца с простыми фразами,
    смысл сохранён (разделение хранения и вычислений, роль табличного
    формата, вариативность технологий);
  - в ClickHouse добавлены два вводных предложения: что это и почему
    тема важна для собеседований
- Проверка:
  - mkdocs build --strict (без ошибок)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 19:44:13 +03:00
ddadminandClaude Fable 5 efa4dd9a3e docs: расширены материалы Lakehouse, убрана заглушка в карьерном блоке
- Зачем:
  - менти спрашивают, что такое Lakehouse и чем он отличается от
    классического DWH — во введении секции не было ответа и ссылки;
  - материалы по Iceberg лежали в «Дополнительных материалах», где их
    не найти по пути через секцию Lakehouse;
  - заглушка «в подготовке» выглядела незавершённостью раздела
- Что:
  - во введение секции добавлено объяснение отличия Lakehouse от
    классического DWH (открытые форматы, объектное хранилище,
    независимое масштабирование движков);
  - добавлено введение: статья Arenadata «Как не утонуть в данных:
    выбираем между DWH, Data Lake и Lakehouse» (Habr);
  - добавлен блок «Глубже про Iceberg»: видео Владимира Озерова
    «Как на самом деле работает Apache Iceberg» и статья VK Tech
    «Введение в устройство Parquet и Iceberg» (с пометкой о сложности);
  - из «Дополнительных материалов» в этот блок перенесены статья
    ivan-shamaev про Iceberg и видео «Spark + Iceberg in 1 Hour»;
  - удалена строка «Видео по прохождению собеседований из сообщества
    ОМ — в подготовке»
- Проверка:
  - mkdocs build --strict (без ошибок);
  - все три новые ссылки отвечают 200 (проверены с обходом прокси)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 19:35:41 +03:00
ddadminandClaude Fable 5 70d6da761f feat(docs): переработан раздел «Расширенные навыки»
- Зачем:
  - порядок секций противоречил анонсу раздела (Streaming объявлен первым);
  - Kafka из Streaming-блока — прямой вход в clickstream-стенд ClickHouse;
  - Lakehouse был помечен «в разработке», хотя стенд mini-lakehouse-lab
    уже содержит полноценный курс
- Что:
  - секция Streaming (NiFi + Kafka) перенесена перед ClickHouse,
    добавлена связка «Kafka пригодится на стенде ClickHouse»;
  - ClickHouse: уточнено, что упражнения курса Яндекса можно делать
    в их облаке (платно) или бесплатно на clickhouse-learning-cluster;
    clickstream-стенд обозначен как следующий шаг со своими уроками;
  - Lakehouse: убрана заглушка «Секция в разработке», секция переписана
    вокруг курса «Lakehouse без магии» (8 модулей, ~12–15 часов,
    raw → bronze → silver на NYC Taxi, Spark + Trino, checkpoint'ы);
  - оглавление: порядок «Streaming, ClickHouse, Lakehouse, dbt»
- Проверка:
  - mkdocs build --strict (без ошибок);
  - порядок h3-заголовков в site/index.html соответствует новому

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 19:19:43 +03:00
ddadminandClaude Fable 5 6f61c0ee90 refactor(docs): раздел о сложности алгоритмов заменён ссылкой в Python
- Зачем:
  - отдельный раздел «Понятие сложности алгоритмов» избыточен для DE-роадмапа;
  - SQL-часть (JOIN, индексы, объём сканирования) уже покрыта курсом QPT
- Что:
  - раздел удалён из блока практики;
  - в «продвинутые» темы Python добавлена статья «Сложность алгоритмов.
    Разбор Big O» (habr.com/ru/articles/782608)
- Проверка:
  - mkdocs build --strict (без ошибок);
  - в оглавлении ссылок на удалённый раздел не было

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 19:13:09 +03:00
ddadminandClaude Fable 5 9d8696f748 docs(modeling): исправлены ссылки на папки и markdown для сайта
- Зачем:
  - относительные ссылки на каталоги sql/ и data/ давали 404 на GitHub Pages;
  - em-dash в заголовках нарушает правило AGENTS.md (расходятся слаги GitHub/MkDocs);
  - 2-пробельная вложенность и списки без пустой строки ломали рендер в MkDocs
- Что:
  - ссылки на папки заменены на GitHub-tree-ссылки (работают на обеих платформах);
  - в 26 заголовках « — » заменено на «: » или убрано (README, SCD, DataVault, домашка);
  - пустая строка перед списком «Главные правила» в DataVault;
  - вложенные списки DataVault переведены на 4-пробельный отступ
- Проверка:
  - mkdocs build --strict (без ошибок);
  - grep по репо — якорных ссылок на старые слаги заголовков нет;
  - grep по site/dwh-modeling/*.html — списки рендерятся <ul>/<li>, вложенность сохранена

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 19:11:49 +03:00
ddadminandClaude Fable 5 a4fa66c466 feat(docs): добавлены стенды ClickHouse, починены ссылки и списки
- Зачем:
  - в разделе ClickHouse не было ссылок на учебные стенды;
  - аудит сайта выявил битые ссылки и сломанный рендеринг списков в MkDocs
- Что:
  - добавлены стенды clickhouse-learning-cluster и clickstream-ch-kafka-superset-demo;
  - пустые строки перед списками (CTE, Jira, Яндекс.Трекер) — рендерились абзацем с буквальными маркерами;
  - убраны лишние `**` после ссылки на Yandex Tracker (ломали разметку);
  - голые URL оформлены markdown-ссылками (karpov docker, jupyter-spark-docker, курс Яндекса по CH);
  - ссылка на datetime: зеркало django.fun заменено на docs.python.org/ru;
  - исправлена опечатка «конспектов лекция» → «лекций»;
  - mkdocs.yml: в заголовок домашки в nav добавлен пропущенный слой ODS;
  - AGENTS.md: Site URL обновлён на de.dementev.space (старый адрес отдаёт 404)
- Проверка:
  - mkdocs build --strict (без ошибок);
  - grep по site/index.html — исправленные списки рендерятся как <ul>/<li>

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 19:11:49 +03:00
ddadmin d19eb2de9d docs(project): добавлен TODO по подключению Google Analytics
- Зачем:
  - планируется подключение счётчика GA для аналитики трафика сайта.
- Что:
  - добавлен пункт в секцию «Сайт» файла project/TODO.md.
- Проверка:
  - cat project/TODO.md.
2026-04-03 22:14:23 +03:00
ddadminandClaude Opus 4.6 f1a3ec00dd feat(site): добавлен раздел «Разработка с ИИ» с двумя статьями-переводами
- Зачем:
  - расширить роадмап практическим разделом о работе с ИИ-ассистентами.
- Что:
  - добавлена вводная страница ai-dev/README.md.
  - добавлен перевод «Лучшие практики работы с coding agents» (ai-dev/best-practice.md).
  - добавлен перевод «Механизм памяти coding agents» (ai-dev/memory-mechanism.md).
  - добавлен раздел «Разработка с ИИ» в навигацию mkdocs.yml.
- Проверка:
  - mkdocs build --strict проходит без ошибок.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 11:05:12 +03:00
ddadminandClaude Opus 4.6 f1d118b81e docs(project): обновлён статус Спринта 2, добавлен TODO
- Зачем:
  - зафиксировать прогресс Спринта 2 и запланированные задачи.
- Что:
  - PRD: отмечены выполненные пункты (Telegram, Метрика, collapsible).
  - добавлен project/TODO.md с задачами: перенос учебника Airflow, переработка раздела «Сложность алгоритмов», бейджи статуса.
  - домашка DWH: эталонное решение обёрнуто в <details> (dual-compatible).
- Проверка:
  - mkdocs build --strict без ошибок.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:57:05 +03:00
ddadminandClaude Opus 4.6 66267e8b8c feat(site): подключена Яндекс.Метрика (счётчик 108294923)
- Зачем:
  - нужна базовая аналитика посещаемости сайта.
- Что:
  - добавлен скрипт Яндекс.Метрики в блок extrahead шаблона overrides/main.html.
  - включены вебвизор, карта кликов и точный показатель отказов.
- Проверка:
  - mkdocs build --strict без ошибок.
  - счётчик присутствует на всех страницах собранного сайта.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:23:41 +03:00
ddadminandClaude Opus 4.6 33a95cc3e4 feat(site): добавлена кнопка «Написать в Telegram» и соцсети в футер
- Зачем:
  - менти и посетителям сайта нужен быстрый способ связаться с ментором.
- Что:
  - добавлена floating-кнопка Telegram (левый нижний угол, всегда видна при скролле).
  - добавлены иконки Telegram и GitHub в футер через extra.social.
  - создан template override (overrides/main.html) с inline-стилями.
- Проверка:
  - mkdocs build --strict проходит без ошибок.
  - кнопка видна на всех страницах, ведёт на t.me/dementev_dev.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 19:04:50 +03:00
ddadmin f62c6f761b docs(project): обновлён статус PRD — Спринт 1 завершён
- Зачем:
  - зафиксировать прогресс и актуальное состояние проекта.
- Что:
  - отмечены все чекбоксы MVP (Спринт 1) как выполненные.
  - отмечены кастомный домен и тёмная тема в Спринте 2.
  - обновлён URL сайта на de.dementev.space.
- Проверка:
  - project/PRD.md читаем на GitHub.
2026-03-27 23:28:27 +03:00
ddadmin 7dc5a2ae59 feat(site): подключён кастомный домен de.dementev.space
- Зачем:
  - презентабельный URL вместо dementev-dev.github.io/de-roadmap.
- Что:
  - добавлен файл CNAME с записью de.dementev.space.
  - обновлён site_url в mkdocs.yml.
- Проверка:
  - после распространения DNS: https://de.dementev.space/
2026-03-27 23:21:45 +03:00
ddadminandGitHub 537e77eba6 Merge pull request #1 from dementev-dev/feature/mkdocs-site
feat(site): MkDocs Material сайт с деплоем на GitHub Pages
2026-03-27 23:07:09 +03:00
ddadmin a1f2643841 feat(site): добавлен MkDocs Material сайт с CI/CD на GitHub Pages
- Зачем:
  - роадмап нуждается в презентабельном виде с навигацией и поиском, а не только GitHub README.
- Что:
  - создан mkdocs.yml (Material, docs_dir: ., поиск на русском, тёмная/светлая тема).
  - создан .github/workflows/deploy-site.yml (push в main → сборка → GitHub Pages).
  - адаптирован Markdown для dual compatibility (GitHub + MkDocs): пустые строки перед списками, отступы 2sp→4sp, заголовки README #→## для корректного TOC.
  - заменены em-dash на запятые в 4 заголовках dwh-modeling/README.md (фикс расхождения якорей).
  - добавлены правила Markdown Style и команды MkDocs/Playwright в AGENTS.md.
- Проверка:
  - uv run --with 'mkdocs-material==9.6.14' --with 'mkdocs-same-dir==0.1.3' mkdocs build --strict
2026-03-27 22:57:15 +03:00
ddadmin 721ed4163b docs(project): добавлены PRD и ADR для сайта de-roadmap
- Зачем:
  - зафиксировать проектные решения до начала реализации.
- Что:
  - добавлен project/PRD.md — требования, цели, итерации и риски.
  - добавлен project/ADR.md — выбор MkDocs Material, структура файлов, стратегия dual-compatible ссылок, конфиг CI/CD.
- Проверка:
  - файлы читаемы на GitHub: project/PRD.md и project/ADR.md.
2026-03-25 23:38:34 +03:00
ddadmin 2967664e43 Merge branch 'roadmap' 2026-03-15 16:56:27 +03:00
ddadmin e66ed85af2 docs(readme): переработана секция «Карьера и менторство»
- Зачем:
  - плейсхолдеры и внутренние заметки ментора были видны студентам.
- Что:
  - заменён плейсхолдер про резюме на описание совместной практики с ментором.
  - секция «Навыки поиска работы с HH и Habr карьера» переименована в «Поиск работы и собеседования».
  - убран дубль ссылки на видео про испытательный срок.
  - плейсхолдеры про собесы заменены на пункт «мок-собеседования с ментором» и отметку «в подготовке».
- Проверка:
  - визуальная проверка рендеринга README.md.
2026-03-14 22:28:29 +03:00
ddadmin deed1a4bcc merge(roadmap): доработки README — новые секции, исправлены ссылки, упрощено оглавление 2026-03-14 22:09:50 +03:00
ddadminandClaude Opus 4.6 515fa6a5de docs(readme): доработан роадмап — новые секции, исправлены ссылки, упрощено оглавление
- Зачем:
  - убраны мёртвые и архивные ссылки на чужой форк (HalltapeRoadmapDE), наполнены пустые секции, добавлены недостающие темы
- Что:
  - оглавление упрощено до H1/H2, убран self-link
  - исправлен casing GreenPlum → Greenplum
  - убраны 4 архивные ссылки на HalltapeRoadmapDE (Greenplum, DWH, Spark, dbt)
  - добавлена подсекция venv перед Jupyter Lab в формате буллет-группы
  - NiFi и Kafka объединены в секцию «Streaming (NiFi + Kafka)» с единым стендом nifi-kafka-postgres-lab
  - добавлена preview-секция «Lakehouse (Spark, Iceberg, Trino)» с русскоязычным видео и стендом mini-lakehouse-lab
  - секция dbt наполнена: quickstart, перевод документации, практика с jaffle-shop
  - обновлены вводный текст и критерии прохождения блока «Расширенные навыки»
- Проверка:
  - визуально проверить рендеринг якорей оглавления в GitHub

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 22:04:45 +03:00
ddadmin e78d5a1a35 docs(readme): реорганизована секция Greenplum и курсовой работы
- Зачем:
  - упрощение роадмапа: курсовая и практика Greenplum теперь используют один стенд.
- Что:
  - курс Yandex по Greenplum выделен как основной.
  - практика по Greenplum привязана к стенду airflow-dwh-gp-lab.
  - курсовая работа переписана под использование того же стенда.
  - добавлено описание эталонного DWH и автоматической проверки.
  - удалена секция "Стенд в Docker Compose" из оглавления.
- Проверка:
  - git diff HEAD~1 README.md.
2026-03-14 19:55:03 +03:00
ddadmin fd3f591802 Merge branch 'main' into roadmap 2026-03-14 19:31:28 +03:00
ddadmin c6c67d1fc6 merge(dwh-modeling): влита ветка dwh-modeling-basics с материалами по DWH
- Зачем:
  - объединить улучшенные учебные материалы по DWH-моделированию в основную ветку.
- Что:
  - добавлен COMMIT_RULES.md с правилами оформления коммитов.
  - добавлено решение домашнего задания (09_dml_hw_customer_status_solution.sql).
  - улучшена документация: расширены разделы 3NF и Звезда, добавлены пояснения по ODS.
  - исправлены опечатки и SQL-скрипты по результатам ревью.
  - обновлены CSV-данные для корректной работы примеров.
- Проверка:
  - git log --oneline -5.
  - просмотр изменённых файлов в dwh-modeling/.
2026-02-21 21:42:49 +03:00
ddadminandClaude Opus 4.6 b3826f47cb fix(modeling): пример витрины в README приведён в соответствие со скриптами
- customer_segment: убрана несуществующая колонка dim_customer, заменена
  на CASE по сумме (как в 06_dml_dm.sql)
- MATERIALIZED VIEW заменён на TRUNCATE + INSERT INTO (как в скриптах),
  упоминание MV оставлено в ремарке
- добавлен комментарий о недетерминированности CURRENT_DATE в bounds

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 19:21:39 +03:00
ddadminandClaude Opus 4.6 c6a20f3cf7 fix(modeling): исправлены ошибки по результатам перекрёстного ревью
- Зачем:
  - в статье и скриптах обнаружены фактические ошибки и несостыковки
- Что:
  - README: f.order_date -> d.date_actual в примере витрины (колонки order_date нет в fact_sales)
  - README: «календарь на 10 лет» -> «5 лет» (соответствует генерации 2023-2027 в скрипте)
  - 09_solution: bounds CTE теперь использует CURRENT_DATE для открытых интервалов (valid_to IS NULL)
  - 09_solution: комментарий про дубли в STG при повторном запуске блока 3
  - 05_ddl_dm: выравнивание total_line_items
  - AGENTS.md: обновлён диапазон скриптов 01-09
- Проверка:
  - визуальная проверка diff

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 15:13:38 +03:00
ddadminandClaude Opus 4.6 14a61a3b46 docs(modeling): пояснена разница между снимковым и событийным ODS
- Зачем:
  - менти видит два разных паттерна ODS (снимок vs event log) и не понимает почему
- Что:
  - в решении домашки (блок 1 ODS): комментарий, почему customer_status хранит все события
  - в домашке (раздел 3.2): пометка о сознательном выборе модели ODS
- Проверка:
  - визуальная проверка diff

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 14:55:38 +03:00
ddadminandClaude Opus 4.6 f830d54cd7 refactor(sql): улучшено решение домашки как учебный материал
- Зачем:
  - решение домашки должно быть самодостаточным и наглядным для самопроверки
- Что:
  - добавлены контрольные SELECT после каждого блока (ODS, DDS, инкремент, DM)
  - блок 3 (инкремент) стал самодостаточным: загрузка в STG + UPSERT в ODS + SCD2
  - DDL витрины вынесен из решения/шаблона/домашки в 07_ddl_hw_customer_status.sql
  - предусловия в домашке дополнены (05_ddl_dm.sql, пояснение про dim_date)
  - в шапку решения добавлено напоминание сначала попробовать самостоятельно
- Проверка:
  - визуальная проверка diff

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 14:49:49 +03:00
ddadminandClaude Opus 4.6 1d99539052 docs(modeling): расширены разделы 3NF и Звезда практическими примерами
- Зачем:
  - разделы 3NF и Звезда были слишком краткими для учебного материала,
    менти не видел разницу между моделями на практике
- Что:
  - 3NF: добавлена mermaid-диаграмма с dim_city и SQL-запрос (3 JOIN)
  - Звезда: добавлена явная связь с разделом 5, SQL-запрос (2 JOIN) для контраста
  - оба примера отвечают на один вопрос: «сколько потратил клиент из Москвы?»
- Проверка:
  - визуальная проверка diff

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 14:41:42 +03:00
ddadminandClaude Opus 4.6 45f8f74378 refactor(modeling): улучшены учебные материалы DWH по результатам ревью
- Зачем:
  - убрать путаницу, дублирование и неточности в демо-скриптах и домашке
- Что:
  - CSV: заголовок load_ts → _load_ts во всех файлах (совпадает с именем в таблицах)
  - домашка: убраны оговорки о расхождении load_ts/_load_ts, добавлена ссылка на эталонное решение
  - 09_dml_hw_customer_status_solution.sql: эталонное решение скопировано из ветки solution/hw_customer_status в основную
  - 02_dml: добавлена карта загрузки в шапку (что откуда строится)
  - 05_ddl_dm + 06_dml_dm: total_orders → total_line_items (название точнее отражает содержимое)
- Проверка:
  - визуальная проверка diff, скрипты не запускались (демо-стенд не поднят)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 14:31:10 +03:00
ddadmin 8973eea064 feat(docs): добавлены правила коммитов COMMIT_RULES.md
- Зачем:
  - нужна единая спецификация для сообщений коммитов
  - облегчение code review и читаемости истории
- Что:
  - создан COMMIT_RULES.md с правилами Conventional Commits
  - адаптированы scopes под репозиторий: sql, modeling, bookings, docs, data
  - обновлена секция в AGENTS.md с ссылкой на полные правила
- Проверка:
  - git log --oneline -1
  - cat COMMIT_RULES.md | head -20
2026-02-21 14:29:23 +03:00
ddadmin 973883385b Обновлена статья DWH-моделирование: переработан раздел Data Vault, исправлены опечатки, добавлена ссылка на домашку 2026-02-21 14:05:16 +03:00
ddadmin ebeb6bbf68 мелкая правка 2026-02-01 21:22:00 +03:00
ddadmin f31e265454 Merge branch 'roadmap' 2026-02-01 21:18:45 +03:00
ddadmin a7742257f8 Расширение оглавления 2026-02-01 21:18:13 +03:00
ddadmin 39fb62fc32 Критерии усвоения методологий разработки 2026-02-01 21:07:30 +03:00
ddadmin 7b0418ccc5 Перенос подраздела в раздел 2026-02-01 21:03:47 +03:00
ddadmin cd3aed30d9 Методологии разработки 2026-02-01 18:55:40 +03:00