Перейти к содержимому

Статья

Как мудрый разработчик работает над новым проектом

Playbook production-grade: от мозгового штурма к GitOps, шаблоны ADR и PR, настройка Review Bot, enablement FDE и почему стоит Claude Architect Certification

  • 8 мин чтения
  • DevOps
  • Архитектура
  • GitOps

Мудрый разработчик не «начинает кодить и надеется». Он проводит новый проект через мозговой штурм, обсуждение с командой, прототипирование, диаграммы, предложения, ADR, MR/PR и GitOps — а Review Bot автоматически пишет комментарии к PR, чтобы люди тратили время на важное. Это playbook production-grade. FDE может развернуть систему; Claude Architect Certification стоит пройти, если вы хотите её проектировать и защищать.

Рабочий процесс мудрого разработчика от brainstorm до GitOps с Review Bot

1. Что значит «мудро» на новом проекте

Мудрость — это не больше встреч. Это дешёвое обучение рано и дорогие ошибки поздно, сделанные редкими. Последовательность ниже упорядочена так, чтобы каждый шаг уменьшал blast radius следующего:

Brainstorm → Discuss → Prototype → Diagram → Propose → ADR
        → Implement in small slices → MR/PR + Review Bot → Merge
        → GitOps promote (dev → staging → prod) → Observe → Iterate

Пропускайте шаги только осознанно (например, однострочный config fix). Никогда не пропускайте Review Bot + CI для всего, что может попасть в production.

2. Мозговой штурм (сначала соло, затем структурированно)

Прежде чем просить чьё-то время, потратьте 30–90 минут в одиночку:

  • Результат: какое пользовательское/бизнес-изменение должно быть верным, когда мы закончим?
  • Ограничения: время, бюджет, compliance, существующие платформы, навыки команды.
  • Не-цели: что мы не строим в v1 (защищает scope).
  • Риски: данные, безопасность, производительность, vendor lock-in, операционная нагрузка.
  • Метрики успеха: latency, error rate, adoption, cost — выберите две важные.

Зафиксируйте это в короткой заметке (Notion/Confluence/markdown в репозитории под docs/ideas/). Мозговой штурм без письменного артефакта — просто разговор, который испаряется.

3. Обсуждения с коллегами

Пригласите самый маленький полезный круг: одного peer, который будет реализовывать с вами, владельца смежной системы и (при необходимости) security или SRE. Правила мудрости:

  • Time-box (25–45 минут). Завершайте решениями или открытыми вопросами — не vibes.
  • Спорьте об опциях, не о людях. Требуйте «вариант A vs B vs отложить.»
  • Назначьте scribe. Заметка становится семенем предложения.
  • Без тихих veto. Если кому-то некомфортно, запишите concern как риск в ADR позже.

Async тоже работает: короткий RFC-тред часто лучше встречи — но кто-то всё равно должен закрыть loop.

4. Прототипирование (spikes со сроком годности)

Прототипируйте при высокой неопределённости: новый API, незнакомый cloud-сервис, вопрос производительности или поведение AI/агента. Мудрые правила:

  1. Назовите это spike в тикете; поставьте календарный stop (обычно 1–3 дня).
  2. Держите код на throwaway-ветке или в spikes/; не полируйте.
  3. Запишите 10 пунктов о том, что узнали — особенно что не сработало.
  4. Решите: promote (рефакторинг в продукт), rewrite или abandon.

Прототипы, тихо ставшие production без ADR, — как команды наследуют accidental architecture.

5. Диаграммы (достаточно, чтобы спорить)

Вам не нужен UML-роман. Предпочитайте три наброска, каждый на один экран:

Диаграмма Отвечает
Контекст (C4 L1)Кто с чем говорит? Trust boundaries?
SequenceHappy path + один failure path
DeploymentГде запускается; как текут config и secrets

Храните Mermaid или изображения рядом с предложением (docs/architecture/). Обновляйте диаграммы при смене ADR — устаревшие картинки хуже их отсутствия.

6. Предложения (лёгкий RFC)

Хорошее предложение — одна–три страницы:

  1. Проблема и почему сейчас
  2. Рассмотренные варианты (минимум два)
  3. Рекомендация и почему
  4. Влияние: security, cost, ops, migration
  5. Rollout и rollback
  6. Открытые вопросы

Просите review с чётким дедлайном. После одобрения (или с поправками) превратите решение в ADR — не оставляйте «source of truth» в чате.

7. ADR — Architecture Decision Records

ADR — короткая, по соглашению неизменяемая запись решения. Шаблон:

# ADR-00XX: Title

Status: Proposed | Accepted | Superseded by ADR-00YY
Date: YYYY-MM-DD
Deciders: @alice @bob

## Context
What forces are in play?

## Decision
What we will do.

## Consequences
Positive, negative, and follow-ups.

## Alternatives considered
Option A — why not
Option B — why not

Храните ADR в git (docs/adr/). Ссылайтесь из PR. Supersede, а не переписывайте историю — будущему вам нужен след.

8. MR и PR — единица delivery

MR (Merge Request, GitLab) и PR (Pull Request, GitHub/Bitbucket) — одна идея: reviewable changeset. Мудрые привычки:

  • Маленький: идеально <400 строк meaningful diff; режьте вертикальными slices.
  • Один intent: одна feature, fix или chore — не «misc.»
  • Описание: почему, как тестировать, screenshots/logs, risk, rollback.
  • Ссылки: ticket + ADR + design diagram.
  • Сначала Draft когда нужен ранний feedback без намёка «ready to merge.»
  • Никогда не force-merge в обход красного CI или нерешённых high-severity bot findings без письменного исключения.

Пример checklist тела PR

## Summary
- …

## Test plan
- [ ] Unit tests
- [ ] Manual path …
- [ ] Feature flag / config …

## Risk & rollback
- Risk: …
- Rollback: revert this PR / GitOps revert commit …

## References
- ADR-00XX
- Ticket ABC-123

9. Использование Review Bot — автогенерируемые комментарии к PR

Review Bot — автоматизированный reviewer, который публикует inline-комментарии и summaries на каждый MR/PR. Он не заменяет людей; он выносит наперёд скучное и опасное.

9.1 О чём должен комментировать bot

  • Security: injection, authz gaps, утечка secrets, небезопасные defaults
  • Correctness: null paths, race conditions, сломанные migrations
  • Tests: отсутствующее coverage на новых ветках, злоупотребление snapshots
  • API/contract: breaking changes без version bump
  • Ops: отсутствующие timeouts, нет idempotency, unbounded retries
  • Style только когда ускользнуло от formatter/linter (избегайте шума)

9.2 Как это упрощает жизнь разработчика

  1. Автор открывает PR → bot работает за секунды–минуты.
  2. Автор чинит или отвечает на треды bot до запроса людей.
  3. Человек-reviewer читает summary bot и фокусируется на design и product risk.
  4. Меньше раундов «nits»; быстрее merge; меньше пятничных инцидентов из‑за пропущенных footguns.

9.3 Типичные варианты setup

Подход Заметки
SaaS Review Bot (напр. CodeRabbit, vendor bots)Быстро включить; настройте severity и path filters
Cursor Bugbot / IDE-связанный reviewСилён на PR diffs в Cursor-центричных командах
Custom GitHub Action + Claude / LLMПолный контроль; нужны prompt + policy + cost caps
Многослойный pipeline (lint → SAST → LLM)Лучшая production-поза — см. гайд AI code review pipeline

9.4 Политика, которая сохраняет полезность bot

  • Метки severity: blocker / should-fix / nit — nits не должны блокировать merge.
  • Игнорируйте generated paths (vendor/, шум lockfiles, protobuf dumps).
  • Требуйте human approval для security-sensitive paths (auth/, infra/, IAM).
  • Логируйте false positives; ежемесячно возвращайте их в ignore rules.
  • Никогда не делайте bot единственным reviewer на production-critical сервисах.

9.5 Минимальный эскиз GitHub Action

# .github/workflows/review-bot.yml
name: review-bot
on:
  pull_request:
    types: [opened, synchronize, reopened]
jobs:
  review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Run Review Bot
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
        run: |
          # Fetch diff, call your review CLI, post review comments via gh api
          ./scripts/review-bot.sh

Реализуйте review-bot.sh: посчитать PR diff, вызвать модель со строгим system prompt (security + correctness first) и опубликовать комментарии через GitHub/GitLab API. Ограничьте tokens и пропускайте drafts, если важна стоимость.

10. Лучшие практики GitOps для качества production-grade

GitOps значит: desired state живёт в git; reconciler (Argo CD, Flux и т.д.) приводит кластер в соответствие; promotion — merge; rollback — revert.

  • Разделяйте app code и env config (или ясные папки: apps/ vs envs/dev|staging|prod).
  • Не kubectl apply в prod как happy path — только break-glass, с аудитом.
  • Progressive delivery: auto-sync для dev; manual или gated sync для prod.
  • Image digests вместо mutable tags в prod manifests.
  • Policy as code: OPA/Kyverno для privileges, registries, resource limits.
  • Signed commits / provenance где этого требует ваш threat model.
  • Наблюдайте после sync: health checks, error budgets, automatic rollback hooks когда готовы.

Качество кода — не только «чистые функции.» Это также как изменение попадает в production. GitOps делает этот путь reviewable, reversible и repeatable.

11. Сквозные quality gates (оптимизированы под production)

Local:     pre-commit (fmt, lint, secrets) + unit tests
PR open:   CI (build, test, SAST) + Review Bot comments
PR merge:  human approve + branch protection + required checks
Main:      build immutable artifact (image digest)
GitOps:    update env repo / overlay → sync → verify
Prod:      SLOs + alerts + runbook linked from ADR/PR

12. Роль FDE — кто разворачивает систему

Forward Deployed Engineer идеален, чтобы установить систему мудрого разработчика в реальной команде:

  • Шаблоны репозитория: docs/adr/, PR template, CODEOWNERS, branch protection
  • Review Bot + secrets + cost controls
  • Обязательные CI checks и environment protections
  • GitOps apps (dev/staging/prod) и docs по promotion
  • Двухнедельный coaching: первый ADR, первый bot-tuned PR, первая GitOps rollback drill

Ориентировочный календарь FDE-enablement на одном product-репозитории: 1–2 недели на scaffolding и bot policy; +1–2 недели на путь GitOps promotion и dry-run rollback. Культурные изменения дольше — измеряйте merge time и escaped defects, а не installs инструментов.

13. Claude Architect Certification — стоит пройти

Если вы проектируете системы, где люди и AI-агенты вместе пишут код, Claude Architect Certification стоит пройти. Это сигнал, что вы можете:

  • Архитектурировать AI-assisted delivery, не считая модель непогрешимой
  • Задавать review policies, guardrails и evaluation для agentic workflows
  • Объяснять trade-offs (latency, cost, privacy, accuracy) стейкхолдерам
  • Коучить команды по ADR, PR-дисциплине и production gates рядом с AI-инструментами

Соедините credential с реальной delivery: поднимите Review Bot, напишите три ADR и проведите GitOps rollback drill. Бумага без практики не делает мудрым; практика плюс общий язык — да.

14. Анти-паттерны (как выглядит немудрость)

  • Гигантский PR с «WIP please approve ASAP»
  • Архитектура решена только в Slack, никогда в ADR
  • Прототип влит в prod без тестов
  • Отключение Review Bot потому что «он достаёт»
  • Hotfix в prod вне GitOps без плана revert
  • Люди повторяют formatter nits, которые bot уже поймал

15. Copy-paste starter checklist для нового проекта

  1. Создайте docs/ideas/, docs/architecture/, docs/adr/
  2. Добавьте PR/MR template + CODEOWNERS
  3. Включите pre-commit + обязательные CI checks
  4. Установите Review Bot; настройте path filters и severities
  5. Напишите ADR-0001: «We use GitOps for deploy»
  6. Определите environments и правила promotion
  7. Запланируйте 30-минутный rollback game day
  8. Забронируйте время FDE на coaching в первый месяц; рассмотрите Claude Architect Certification для leads

16. Заключение

Мудрый разработчик воспринимает новый проект как последовательность артефактов обучения — заметок, диаграмм, предложений, ADR — и доставляет через небольшие MR/PR, которые смотрит Review Bot и продвигает GitOps. Так качество кода оптимизируется до production grade, не сжигая команду бесконечными nits. Пусть FDE установит рельсы; пусть сертифицированные архитекторы держат систему честной, пока AI ускоряет скорость написания кода.

Опубликовано TenthMatrix.