Files
progcode/web/public/assets/editorial/2019/code-ownership-three-surfaces-2019.svg
T
huncode f204e2d730
Build and deploy / deploy (push) Successful in 13s
revise December 2019 ownership articles
2026-07-31 11:10:23 +03:00

42 lines
5.1 KiB
XML

<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>