Files
progcode/web/public/assets/editorial/2024/legacy-modernization-2024-compatibility-matrix.svg
T
huncode e74907ff32
Build and deploy / deploy (push) Successful in 15s
revise January 2024 legacy modernization articles
2026-07-31 15:28:25 +03:00

48 lines
5.1 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="660" viewBox="0 0 960 660" role="img" aria-labelledby="title desc">
<title id="title">Матрица compatibility contract для трёх synthetic cases</title>
<desc id="desc">Таблица сопоставляет valid, invalid и repeat synthetic cases с четырьмя слоями: transport, payload, effect и time. Каждая ячейка требует отдельное evidence; неизвестное свойство нельзя объявлять parity.</desc>
<rect width="960" height="660" fill="#f5f8fb"/>
<rect x="24" y="22" width="912" height="616" rx="24" fill="#ffffff" stroke="#bfd0df" stroke-width="2"/>
<text x="58" y="74" fill="#18324a" font-family="Arial, sans-serif" font-size="30" font-weight="700">Parity: свойства важнее похожего JSON</text>
<text x="58" y="108" fill="#496379" font-family="Arial, sans-serif" font-size="20">Каждая клетка требует evidence. Unknown не равен parity.</text>
<rect x="58" y="158" width="200" height="68" fill="#dae8f5" stroke="#88a7c0" stroke-width="2"/>
<rect x="258" y="158" width="156" height="68" fill="#dae8f5" stroke="#88a7c0" stroke-width="2"/>
<rect x="414" y="158" width="156" height="68" fill="#dae8f5" stroke="#88a7c0" stroke-width="2"/>
<rect x="570" y="158" width="156" height="68" fill="#dae8f5" stroke="#88a7c0" stroke-width="2"/>
<rect x="726" y="158" width="176" height="68" fill="#dae8f5" stroke="#88a7c0" stroke-width="2"/>
<text x="158" y="200" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="22" font-weight="700">Synthetic case</text>
<text x="336" y="200" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="22" font-weight="700">Transport</text>
<text x="492" y="200" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="22" font-weight="700">Payload</text>
<text x="648" y="200" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="22" font-weight="700">Effect</text>
<text x="814" y="200" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="22" font-weight="700">Time</text>
<g fill="#f8fafc" stroke="#bfd0df" stroke-width="2">
<rect x="58" y="226" width="200" height="96"/><rect x="258" y="226" width="156" height="96"/><rect x="414" y="226" width="156" height="96"/><rect x="570" y="226" width="156" height="96"/><rect x="726" y="226" width="176" height="96"/>
<rect x="58" y="322" width="200" height="96"/><rect x="258" y="322" width="156" height="96"/><rect x="414" y="322" width="156" height="96"/><rect x="570" y="322" width="156" height="96"/><rect x="726" y="322" width="176" height="96"/>
<rect x="58" y="418" width="200" height="96"/><rect x="258" y="418" width="156" height="96"/><rect x="414" y="418" width="156" height="96"/><rect x="570" y="418" width="156" height="96"/><rect x="726" y="418" width="176" height="96"/>
</g>
<g font-family="Arial, sans-serif">
<text x="78" y="265" fill="#18324a" font-size="22" font-weight="700">valid</text><text x="78" y="294" fill="#496379" font-size="18">declared success</text>
<text x="78" y="361" fill="#18324a" font-size="22" font-weight="700">invalid</text><text x="78" y="390" fill="#496379" font-size="18">validation boundary</text>
<text x="78" y="457" fill="#18324a" font-size="22" font-weight="700">repeat</text><text x="78" y="486" fill="#496379" font-size="18">same input or key</text>
<g fill="#305842" font-size="18">
<text x="276" y="270">status category</text><text x="276" y="294">declared evidence</text>
<text x="432" y="270">required fields</text><text x="432" y="294">declared evidence</text>
<text x="588" y="270">no extra effect</text><text x="588" y="294">declared evidence</text>
<text x="744" y="270">known state point</text><text x="744" y="294">declared evidence</text>
<text x="276" y="366">not success or 500</text><text x="276" y="390">declared evidence</text>
<text x="432" y="366">error contract</text><text x="432" y="390">declared evidence</text>
<text x="588" y="366">no mutation on reject</text><text x="588" y="390">declared evidence</text>
<text x="744" y="366">precondition named</text><text x="744" y="390">declared evidence</text>
<text x="276" y="462">same response class</text><text x="276" y="486">declared evidence</text>
<text x="432" y="462">same semantics</text><text x="432" y="486">declared evidence</text>
<text x="588" y="462">no duplicate effect</text><text x="588" y="486">declared evidence</text>
<text x="744" y="462">idempotency boundary</text><text x="744" y="486">declared evidence</text>
</g>
</g>
<rect x="58" y="548" width="844" height="54" rx="12" fill="#fff3df" stroke="#bd8135" stroke-width="2"/>
<text x="80" y="581" fill="#5a3a10" font-family="Arial, sans-serif" font-size="20" font-weight="700">Unknown is a result:</text>
<text x="277" y="581" fill="#735021" font-family="Arial, sans-serif" font-size="20">do not call parity until the owner has a source and a comparison rule.</text>
</svg>