rewrite 2026-09 and 2027 articles for reader-facing quality
Build and deploy / deploy (push) Successful in 18s
Build and deploy / deploy (push) Successful in 18s
This commit is contained in:
+34
-8
@@ -1,9 +1,35 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="720" height="620" viewBox="0 0 720 620" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Карта владельцев состояния</title><desc id="desc">Три колонки разделяют локальное состояние UI, контекст и API read model. Команда направлена к API, доменный факт не находится в UI.</desc>
|
||||
<defs><marker id="a" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto"><path d="M0 0L10 5L0 10Z" fill="#1f4b99"/></marker></defs>
|
||||
<rect width="720" height="620" fill="#f8fafc"/><text x="36" y="48" font-family="Arial,sans-serif" font-size="28" font-weight="700" fill="#152238">Карта владельцев: план на сентябрь</text>
|
||||
<rect x="32" y="90" width="198" height="390" rx="16" fill="#e8f0fe" stroke="#3566b8" stroke-width="3"/><text x="52" y="132" font-family="Arial,sans-serif" font-size="26" font-weight="700" fill="#173a78">UI</text><text x="52" y="182" font-family="Arial,sans-serif" font-size="23" fill="#152238">draft-filter</text><text x="52" y="225" font-family="Arial,sans-serif" font-size="23" fill="#152238">open-panel</text><text x="52" y="388" font-family="Arial,sans-serif" font-size="21" fill="#8a1f2d">не владеет</text><text x="52" y="420" font-family="Arial,sans-serif" font-size="21" fill="#8a1f2d">domain fact</text>
|
||||
<rect x="261" y="90" width="198" height="390" rx="16" fill="#eef7e9" stroke="#4d8b44" stroke-width="3"/><text x="281" y="132" font-family="Arial,sans-serif" font-size="26" font-weight="700" fill="#245b2e">Context</text><text x="281" y="182" font-family="Arial,sans-serif" font-size="23" fill="#152238">fixed-locale</text><text x="281" y="225" font-family="Arial,sans-serif" font-size="23" fill="#152238">permission</text><text x="281" y="388" font-family="Arial,sans-serif" font-size="21" fill="#3d6a35">условие</text><text x="281" y="420" font-family="Arial,sans-serif" font-size="21" fill="#3d6a35">интерпретации</text>
|
||||
<rect x="490" y="90" width="198" height="390" rx="16" fill="#fff3df" stroke="#b67617" stroke-width="3"/><text x="510" y="132" font-family="Arial,sans-serif" font-size="26" font-weight="700" fill="#824c00">API</text><text x="510" y="182" font-family="Arial,sans-serif" font-size="23" fill="#152238">status</text><text x="510" y="225" font-family="Arial,sans-serif" font-size="23" fill="#152238">allowedActions</text><text x="510" y="268" font-family="Arial,sans-serif" font-size="23" fill="#152238">messageCode</text><text x="510" y="388" font-family="Arial,sans-serif" font-size="21" fill="#824c00">read model</text><text x="510" y="420" font-family="Arial,sans-serif" font-size="21" fill="#824c00">и problem</text>
|
||||
<line x1="190" y1="535" x2="530" y2="535" stroke="#1f4b99" stroke-width="5" marker-end="url(#a)"/><text x="270" y="516" font-family="Arial,sans-serif" font-size="22" font-weight="700" fill="#1f4b99">command intent</text><text x="36" y="582" font-family="Arial,sans-serif" font-size="20" fill="#526273">Fixed synthetic model; не trace и не факт системы.</text>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 420" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Проверка ответа перед рендером</title>
|
||||
<desc id="desc">Последовательность из HTTP status, Content-Type, JSON parse, screen model validator и рендера. Ошибка контракта ведёт в отдельную ветку остановки.</desc>
|
||||
<rect width="720" height="420" rx="24" fill="#f7f3ea"/>
|
||||
<g font-family="Arial, sans-serif" fill="#202124">
|
||||
<text x="42" y="48" font-size="24" font-weight="700">До рендера доходят только проверенные данные</text>
|
||||
<text x="42" y="76" font-size="16" fill="#5f6368">transport → format → shape → view</text>
|
||||
<g font-size="17" font-weight="700">
|
||||
<rect x="42" y="132" width="112" height="76" rx="12" fill="#d7e8ff" stroke="#2b5f9e" stroke-width="2"/>
|
||||
<text x="98" y="163" text-anchor="middle">HTTP</text>
|
||||
<text x="98" y="188" text-anchor="middle">status</text>
|
||||
<rect x="178" y="132" width="112" height="76" rx="12" fill="#d7e8ff" stroke="#2b5f9e" stroke-width="2"/>
|
||||
<text x="234" y="163" text-anchor="middle">Content-</text>
|
||||
<text x="234" y="188" text-anchor="middle">Type</text>
|
||||
<rect x="314" y="132" width="112" height="76" rx="12" fill="#d7e8ff" stroke="#2b5f9e" stroke-width="2"/>
|
||||
<text x="370" y="163" text-anchor="middle">JSON</text>
|
||||
<text x="370" y="188" text-anchor="middle">parse</text>
|
||||
<rect x="450" y="132" width="132" height="76" rx="12" fill="#d9f1e1" stroke="#2e7d51" stroke-width="2"/>
|
||||
<text x="516" y="163" text-anchor="middle">screen</text>
|
||||
<text x="516" y="188" text-anchor="middle">validator</text>
|
||||
<rect x="606" y="132" width="72" height="76" rx="12" fill="#d9f1e1" stroke="#2e7d51" stroke-width="2"/>
|
||||
<text x="642" y="174" text-anchor="middle">view</text>
|
||||
</g>
|
||||
<g stroke="#2b5f9e" stroke-width="3" fill="none">
|
||||
<path d="M154 170h20m116 0h20m116 0h20m132 0h24"/>
|
||||
<path d="m168 163 10 7-10 7m136-7 10 7-10 7m136-7 10 7-10 7m136-7 10 7-10 7"/>
|
||||
</g>
|
||||
<rect x="210" y="280" width="300" height="72" rx="14" fill="#ffe2dc" stroke="#b84b3b" stroke-width="2"/>
|
||||
<text x="360" y="309" text-anchor="middle" font-size="19" font-weight="700">ошибка контракта</text>
|
||||
<text x="360" y="333" text-anchor="middle" font-size="16">остановить render и записать код</text>
|
||||
<path d="M516 208v38H360v34" stroke="#b84b3b" stroke-width="3" fill="none"/>
|
||||
<path d="m352 270 8 12 8-12" stroke="#b84b3b" stroke-width="3" fill="none"/>
|
||||
<text x="42" y="391" font-size="15" fill="#5f6368">HTTP 200 сообщает об обмене; validator решает, можно ли использовать representation.</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 2.8 KiB |
Reference in New Issue
Block a user