82 lines
5.0 KiB
XML
82 lines
5.0 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 960" role="img" aria-labelledby="title desc">
|
||
<title id="title">Матрица сравнения альтернатив в ADR</title>
|
||
<desc id="desc">Таблица трёх синтетических вариантов: direct read, bounded BFF cache и shared cache. Колонки показывают reversibility, evidence fit, constraint fit, operating cost и итоговый учебный score. Выбранный вариант выделен, а снизу указаны ограничение модели и review signal.</desc>
|
||
<defs>
|
||
<linearGradient id="background" x1="0" x2="1" y1="0" y2="1">
|
||
<stop offset="0" stop-color="#fbfcff"/>
|
||
<stop offset="1" stop-color="#f0f8f6"/>
|
||
</linearGradient>
|
||
<style>
|
||
.title { fill: #142b45; font: 700 34px Arial, sans-serif; }
|
||
.subtitle { fill: #58738e; font: 18px Arial, sans-serif; }
|
||
.header { fill: #385775; font: 700 16px Arial, sans-serif; }
|
||
.cell { fill: #183450; font: 17px Arial, sans-serif; }
|
||
.small { fill: #5e7489; font: 14px Arial, sans-serif; }
|
||
.caption { fill: #34536e; font: 15px Arial, sans-serif; }
|
||
.score { fill: #145f52; font: 700 21px Arial, sans-serif; }
|
||
.grid { stroke: #c7d9e7; stroke-width: 1.5; }
|
||
</style>
|
||
</defs>
|
||
<rect width="720" height="960" rx="32" fill="url(#background)"/>
|
||
<text x="48" y="62" class="title">ADR: матрица альтернатив</text>
|
||
<text x="48" y="92" class="subtitle">Одинаковые criteria делают цену выбора видимой до acceptance.</text>
|
||
|
||
<rect x="40" y="126" width="640" height="56" rx="14" fill="#dcebf5"/>
|
||
<text x="58" y="160" class="header">Вариант</text>
|
||
<text x="250" y="151" class="header">Reversi-</text>
|
||
<text x="250" y="171" class="header">bility</text>
|
||
<text x="344" y="151" class="header">Evidence</text>
|
||
<text x="344" y="171" class="header">fit</text>
|
||
<text x="435" y="151" class="header">Constraint</text>
|
||
<text x="435" y="171" class="header">fit</text>
|
||
<text x="536" y="151" class="header">Operating</text>
|
||
<text x="536" y="171" class="header">cost</text>
|
||
<text x="631" y="160" class="header">Score</text>
|
||
|
||
<rect x="40" y="182" width="640" height="150" fill="#ffffff"/>
|
||
<rect x="40" y="332" width="640" height="164" fill="#e7f5ef"/>
|
||
<rect x="40" y="496" width="640" height="150" fill="#ffffff"/>
|
||
<path d="M40 182 H680 M40 332 H680 M40 496 H680 M40 646 H680 M232 126 V646 M324 126 V646 M416 126 V646 M514 126 V646 M613 126 V646" class="grid"/>
|
||
|
||
<text x="58" y="220" class="cell">1. Direct source read</text>
|
||
<text x="58" y="248" class="small">least state</text>
|
||
<text x="58" y="271" class="small">repeat read stays</text>
|
||
<text x="58" y="301" class="small">no explicit freshness</text>
|
||
<text x="276" y="256" class="cell">3</text>
|
||
<text x="371" y="256" class="cell">1</text>
|
||
<text x="464" y="256" class="cell">1</text>
|
||
<text x="562" y="256" class="cell">1</text>
|
||
<text x="633" y="259" class="score">12</text>
|
||
|
||
<rect x="54" y="350" width="94" height="27" rx="13" fill="#1c8d70"/>
|
||
<text x="70" y="369" fill="#ffffff" font-family="Arial, sans-serif" font-size="15" font-weight="700">SELECTED</text>
|
||
<text x="58" y="408" class="cell">2. Bounded BFF cache</text>
|
||
<text x="58" y="436" class="small">expiry has one owner</text>
|
||
<text x="58" y="459" class="small">freshness is the cost</text>
|
||
<text x="276" y="432" class="cell">2</text>
|
||
<text x="371" y="432" class="cell">3</text>
|
||
<text x="464" y="432" class="cell">3</text>
|
||
<text x="562" y="432" class="cell">2</text>
|
||
<text x="633" y="435" class="score">23</text>
|
||
<text x="58" y="480" class="caption">Why: fit and evidence win; freshness price has an owner.</text>
|
||
|
||
<text x="58" y="534" class="cell">3. Shared cross-service cache</text>
|
||
<text x="58" y="562" class="small">reuse plus invalidation</text>
|
||
<text x="58" y="590" class="small">wider owner and rollback</text>
|
||
<text x="276" y="565" class="cell">1</text>
|
||
<text x="371" y="565" class="cell">2</text>
|
||
<text x="464" y="565" class="cell">2</text>
|
||
<text x="562" y="565" class="cell">3</text>
|
||
<text x="633" y="568" class="score">13</text>
|
||
|
||
<rect x="40" y="688" width="640" height="100" rx="18" fill="#fff1d9" stroke="#e3a044" stroke-width="2"/>
|
||
<text x="62" y="722" fill="#9a5b08" font-family="Arial, sans-serif" font-size="20" font-weight="700">Как читать score</text>
|
||
<text x="62" y="750" class="caption">2 × reversibility + 3 × evidence + 4 × fit − cost.</text>
|
||
<text x="62" y="774" class="small">Fixed synthetic formula; не metric и не permission.</text>
|
||
|
||
<rect x="40" y="812" width="640" height="100" rx="18" fill="#e9ecfb" stroke="#8372c4" stroke-width="2"/>
|
||
<text x="62" y="846" fill="#56438c" font-family="Arial, sans-serif" font-size="20" font-weight="700">Review signal</text>
|
||
<text x="62" y="874" class="caption">Contract, freshness or owner changed? Score не переписывают.</text>
|
||
<text x="62" y="898" class="small">Создают successor ADR и сохраняют accepted record.</text>
|
||
</svg>
|