revise January 2024 legacy modernization articles
Build and deploy / deploy (push) Successful in 15s

This commit is contained in:
2026-07-31 15:28:25 +03:00
parent 201dc7bd54
commit e74907ff32
7 changed files with 779 additions and 1 deletions
@@ -0,0 +1,47 @@
<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>

After

Width:  |  Height:  |  Size: 5.1 KiB