revise December 2019 ownership articles
Build and deploy / deploy (push) Successful in 13s

This commit is contained in:
2026-07-31 11:10:23 +03:00
parent 8e2ea8dee8
commit f204e2d730
7 changed files with 518 additions and 1 deletions
@@ -0,0 +1,39 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 940" role="img" aria-labelledby="title desc">
<title id="title">Маршрут от дефекта к разделённой ответственности</title>
<desc id="desc">Вертикальная схема показывает последовательность: симптом, история Git, правило CODEOWNERS, предметный review и отдельная проверка после merge.</desc>
<rect width="480" height="940" fill="#f8fafc" rx="24"/>
<text x="240" y="44" text-anchor="middle" font-family="Arial, sans-serif" font-size="22" font-weight="700" fill="#1f2937">Путь от дефекта к решению</text>
<text x="240" y="72" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" fill="#4b5563">Каждый шаг оставляет проверяемый артефакт</text>
<g font-family="Arial, sans-serif">
<rect x="34" y="110" width="412" height="104" rx="16" fill="#fee2e2" stroke="#f87171" stroke-width="2"/>
<text x="62" y="148" font-size="20" font-weight="700" fill="#7f1d1d">1. Симптом</text>
<text x="62" y="178" font-size="16" fill="#7f1d1d">unknown status попал в success</text>
<text x="62" y="200" font-size="14" fill="#7f1d1d">Запись: вход, неверный результат, цена.</text>
<path d="M240 214 L240 248" stroke="#64748b" stroke-width="4" marker-end="url(#arrow)"/>
<rect x="34" y="254" width="412" height="104" rx="16" fill="#e0f2fe" stroke="#38bdf8" stroke-width="2"/>
<text x="62" y="292" font-size="20" font-weight="700" fill="#0c4a6e">2. История Git</text>
<text x="62" y="322" font-size="16" fill="#0c4a6e">Кто и когда менял строку?</text>
<text x="62" y="344" font-size="14" fill="#0c4a6e">Артефакт: context, а не назначение роли.</text>
<path d="M240 358 L240 392" stroke="#64748b" stroke-width="4" marker-end="url(#arrow)"/>
<rect x="34" y="398" width="412" height="104" rx="16" fill="#dcfce7" stroke="#4ade80" stroke-width="2"/>
<text x="62" y="436" font-size="20" font-weight="700" fill="#14532d">3. CODEOWNERS</text>
<text x="62" y="466" font-size="16" fill="#14532d">Кого запросить по пути change?</text>
<text x="62" y="488" font-size="14" fill="#14532d">Артефакт: проверка правила в base branch.</text>
<path d="M240 502 L240 536" stroke="#64748b" stroke-width="4" marker-end="url(#arrow)"/>
<rect x="34" y="542" width="412" height="104" rx="16" fill="#fef3c7" stroke="#fbbf24" stroke-width="2"/>
<text x="62" y="580" font-size="20" font-weight="700" fill="#78350f">4. Review</text>
<text x="62" y="610" font-size="16" fill="#78350f">Кто подтвердит contract и риск кода?</text>
<text x="62" y="632" font-size="14" fill="#78350f">Артефакт: решение reviewer по вопросу.</text>
<path d="M240 646 L240 680" stroke="#64748b" stroke-width="4" marker-end="url(#arrow)"/>
<rect x="34" y="686" width="412" height="104" rx="16" fill="#fae8ff" stroke="#e879f9" stroke-width="2"/>
<text x="62" y="724" font-size="20" font-weight="700" fill="#701a75">5. Follow-up</text>
<text x="62" y="754" font-size="16" fill="#701a75">Кто проверит результат после merge?</text>
<text x="62" y="776" font-size="14" fill="#701a75">Артефакт: проверка, откат или новая задача.</text>
</g>
<rect x="34" y="836" width="412" height="64" rx="12" fill="#e2e8f0"/>
<text x="240" y="862" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" font-weight="700" fill="#334155">Git даёт context. Платформа направляет review.</text>
<text x="240" y="884" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" fill="#334155">Ответственность фиксируется в change.</text>
<defs>
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#64748b"/></marker>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 980" role="img" aria-labelledby="title desc">
<title id="title">Учебная шкала разбора ошибки на стыке модулей</title>
<desc id="desc">Все события на вертикальной шкале симулированы: неизвестный статус, исторический поиск, назначение ролей, review, merge и проверка результата.</desc>
<rect width="480" height="980" fill="#f8fafc" rx="24"/>
<text x="240" y="42" text-anchor="middle" font-family="Arial, sans-serif" font-size="21" font-weight="700" fill="#1f2937">Учебный разбор, не реальный инцидент</text>
<text x="240" y="70" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" fill="#4b5563">SIM-2019-12-17: unknown не становится success</text>
<line x1="52" y1="126" x2="52" y2="812" stroke="#94a3b8" stroke-width="6" stroke-linecap="round"/>
<g font-family="Arial, sans-serif">
<circle cx="52" cy="146" r="18" fill="#ef4444"/><text x="52" y="152" text-anchor="middle" font-size="14" font-weight="700" fill="#fff">1</text>
<rect x="92" y="108" width="348" height="78" rx="14" fill="#fee2e2" stroke="#f87171" stroke-width="2"/>
<text x="116" y="138" font-size="19" font-weight="700" fill="#7f1d1d">Симптом</text><text x="116" y="164" font-size="15" fill="#7f1d1d">unknown status показан как success</text>
<circle cx="52" cy="286" r="18" fill="#0284c7"/><text x="52" y="292" text-anchor="middle" font-size="14" font-weight="700" fill="#fff">2</text>
<rect x="92" y="248" width="348" height="78" rx="14" fill="#e0f2fe" stroke="#38bdf8" stroke-width="2"/>
<text x="116" y="278" font-size="19" font-weight="700" fill="#0c4a6e">Контекст Git</text><text x="116" y="304" font-size="15" fill="#0c4a6e">Строка и путь исследованы; роль не выбрана</text>
<circle cx="52" cy="426" r="18" fill="#16a34a"/><text x="52" y="432" text-anchor="middle" font-size="14" font-weight="700" fill="#fff">3</text>
<rect x="92" y="388" width="348" height="78" rx="14" fill="#dcfce7" stroke="#4ade80" stroke-width="2"/>
<text x="116" y="418" font-size="19" font-weight="700" fill="#14532d">Роли назначены</text><text x="116" y="444" font-size="15" fill="#14532d">Решение, путь кода, review, follow-up</text>
<circle cx="52" cy="566" r="18" fill="#d97706"/><text x="52" y="572" text-anchor="middle" font-size="14" font-weight="700" fill="#fff">4</text>
<rect x="92" y="528" width="348" height="78" rx="14" fill="#fef3c7" stroke="#fbbf24" stroke-width="2"/>
<text x="116" y="558" font-size="19" font-weight="700" fill="#78350f">Review change</text><text x="116" y="584" font-size="15" fill="#78350f">Contract и соседний путь проверены</text>
<circle cx="52" cy="706" r="18" fill="#a855f7"/><text x="52" y="712" text-anchor="middle" font-size="14" font-weight="700" fill="#fff">5</text>
<rect x="92" y="668" width="348" height="78" rx="14" fill="#fae8ff" stroke="#e879f9" stroke-width="2"/>
<text x="116" y="698" font-size="19" font-weight="700" fill="#701a75">После merge</text><text x="116" y="724" font-size="15" fill="#701a75">Есть назначенная проверка результата</text>
</g>
<rect x="30" y="850" width="420" height="76" rx="14" fill="#e2e8f0"/>
<text x="240" y="880" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" font-weight="700" fill="#334155">Все шаги выше — симуляция.</text>
<text x="240" y="904" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" fill="#334155">Это не сведения о команде или репозитории.</text>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

@@ -0,0 +1,41 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 980" role="img" aria-labelledby="title desc">
<title id="title">Четыре поверхности ответственности за изменение</title>
<desc id="desc">Симулированный дефект связан с владельцем решения, путём кода, ревью и проверкой после merge. История Git показана как источник фактов, а не как владелец.</desc>
<rect width="480" height="980" fill="#f7f8fb" rx="24"/>
<text x="240" y="44" text-anchor="middle" font-family="Arial, sans-serif" font-size="22" font-weight="700" fill="#1f2937">Один дефект — четыре ответа</text>
<text x="240" y="72" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" fill="#4b5563">Код, review и проверка после merge</text>
<text x="240" y="92" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" fill="#4b5563">не обязаны иметь одного владельца</text>
<rect x="48" y="124" width="384" height="116" rx="18" fill="#1d4ed8"/>
<text x="240" y="166" text-anchor="middle" font-family="Arial, sans-serif" font-size="22" font-weight="700" fill="#ffffff">Симптом</text>
<text x="240" y="198" text-anchor="middle" font-family="Arial, sans-serif" font-size="17" fill="#dbeafe">unknown status стал success</text>
<text x="240" y="220" text-anchor="middle" font-family="Arial, sans-serif" font-size="14" fill="#dbeafe">что именно нужно изменить?</text>
<path d="M240 240 L240 276" stroke="#64748b" stroke-width="4" marker-end="url(#arrow)"/>
<rect x="48" y="282" width="384" height="104" rx="16" fill="#dbeafe" stroke="#60a5fa" stroke-width="2"/>
<text x="78" y="322" font-family="Arial, sans-serif" font-size="20" font-weight="700" fill="#1e3a8a">1. Владелец решения</text>
<text x="78" y="352" font-family="Arial, sans-serif" font-size="15" fill="#1e3a8a">Какой статус допустим по контракту?</text>
<text x="78" y="374" font-family="Arial, sans-serif" font-size="14" fill="#1e3a8a">Артефакт: явная формулировка правила.</text>
<path d="M240 386 L240 422" stroke="#64748b" stroke-width="4" marker-end="url(#arrow)"/>
<rect x="48" y="428" width="384" height="104" rx="16" fill="#dcfce7" stroke="#4ade80" stroke-width="2"/>
<text x="78" y="468" font-family="Arial, sans-serif" font-size="20" font-weight="700" fill="#14532d">2. Путь кода</text>
<text x="78" y="498" font-family="Arial, sans-serif" font-size="15" fill="#14532d">Где менять parser, экран и тест?</text>
<text x="78" y="520" font-family="Arial, sans-serif" font-size="14" fill="#14532d">Артефакт: путь и отрицательный test case.</text>
<path d="M240 532 L240 568" stroke="#64748b" stroke-width="4" marker-end="url(#arrow)"/>
<rect x="48" y="574" width="384" height="104" rx="16" fill="#fef3c7" stroke="#fbbf24" stroke-width="2"/>
<text x="78" y="614" font-family="Arial, sans-serif" font-size="20" font-weight="700" fill="#78350f">3. Review</text>
<text x="78" y="644" font-family="Arial, sans-serif" font-size="15" fill="#78350f">Кто проверит контракт и риск change?</text>
<text x="78" y="666" font-family="Arial, sans-serif" font-size="14" fill="#78350f">Артефакт: ответ на конкретный вопрос.</text>
<path d="M240 678 L240 714" stroke="#64748b" stroke-width="4" marker-end="url(#arrow)"/>
<rect x="48" y="720" width="384" height="104" rx="16" fill="#fae8ff" stroke="#e879f9" stroke-width="2"/>
<text x="78" y="760" font-family="Arial, sans-serif" font-size="20" font-weight="700" fill="#701a75">4. После merge</text>
<text x="78" y="790" font-family="Arial, sans-serif" font-size="15" fill="#701a75">Кто проверит наблюдаемый результат?</text>
<text x="78" y="812" font-family="Arial, sans-serif" font-size="14" fill="#701a75">Артефакт: запись о проверке или задаче.</text>
<rect x="48" y="860" width="384" height="78" rx="14" fill="#ffffff" stroke="#cbd5e1" stroke-width="2"/>
<text x="78" y="892" font-family="Arial, sans-serif" font-size="18" font-weight="700" fill="#334155">Git history</text>
<text x="78" y="918" font-family="Arial, sans-serif" font-size="14" fill="#475569">Даёт факт о строке и context.</text>
<text x="78" y="938" font-family="Arial, sans-serif" font-size="14" fill="#475569">Не назначает роль автоматически.</text>
<path d="M240 824 L240 854" stroke="#94a3b8" stroke-width="3" stroke-dasharray="8 7" marker-end="url(#arrow-muted)"/>
<defs>
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#64748b"/></marker>
<marker id="arrow-muted" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#94a3b8"/></marker>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB