revise January 2024 legacy modernization articles
Build and deploy / deploy (push) Successful in 15s
Build and deploy / deploy (push) Successful in 15s
This commit is contained in:
@@ -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 |
@@ -0,0 +1,43 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="640" viewBox="0 0 960 640" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Петля ручного rollout и rollback для одного legacy-шва</title>
|
||||
<desc id="desc">Схема показывает legacy-only этап, ограниченное предложение нового пути, ручное сравнение evidence и решение владельца расширить либо вернуть route к legacy. Данные и внешние эффекты вынесены за границу rollback-route.</desc>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 12 12" refX="10" refY="6" markerWidth="10" markerHeight="10" orient="auto-start-reverse">
|
||||
<path d="M 0 0 L 12 6 L 0 12 z" fill="#25435f"/>
|
||||
</marker>
|
||||
</defs>
|
||||
<rect width="960" height="640" fill="#f5f8fb"/>
|
||||
<rect x="24" y="22" width="912" height="592" rx="24" fill="#ffffff" stroke="#bfd0df" stroke-width="2"/>
|
||||
<text x="58" y="76" fill="#18324a" font-family="Arial, sans-serif" font-size="30" font-weight="700">Rollout — ряд ручных решений, а не один зелёный status</text>
|
||||
<text x="58" y="110" fill="#496379" font-family="Arial, sans-serif" font-size="20">Каждый gate отвечает на один вопрос. Route return не восстанавливает данные автоматически.</text>
|
||||
|
||||
<rect x="58" y="186" width="214" height="148" rx="18" fill="#fff3df" stroke="#bd8135" stroke-width="3"/>
|
||||
<text x="165" y="232" text-anchor="middle" fill="#5a3a10" font-family="Arial, sans-serif" font-size="25" font-weight="700">Stage 0</text>
|
||||
<text x="165" y="266" text-anchor="middle" fill="#735021" font-family="Arial, sans-serif" font-size="20">legacy-only</text>
|
||||
<text x="165" y="298" text-anchor="middle" fill="#735021" font-family="Arial, sans-serif" font-size="18">seam + owner review</text>
|
||||
|
||||
<line x1="272" y1="260" x2="348" y2="260" stroke="#25435f" stroke-width="4" marker-end="url(#arrow)"/>
|
||||
<rect x="356" y="186" width="244" height="148" rx="18" fill="#e9f0ff" stroke="#596fae" stroke-width="3"/>
|
||||
<text x="478" y="232" text-anchor="middle" fill="#273d76" font-family="Arial, sans-serif" font-size="25" font-weight="700">Stage 1</text>
|
||||
<text x="478" y="266" text-anchor="middle" fill="#384f85" font-family="Arial, sans-serif" font-size="20">limited proposal</text>
|
||||
<text x="478" y="298" text-anchor="middle" fill="#384f85" font-family="Arial, sans-serif" font-size="18">contract evidence gate</text>
|
||||
|
||||
<line x1="600" y1="260" x2="676" y2="260" stroke="#25435f" stroke-width="4" marker-end="url(#arrow)"/>
|
||||
<rect x="684" y="186" width="194" height="148" rx="18" fill="#edf7ee" stroke="#4e8b5a" stroke-width="3"/>
|
||||
<text x="781" y="232" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="25" font-weight="700">Stage 2</text>
|
||||
<text x="781" y="266" text-anchor="middle" fill="#305842" font-family="Arial, sans-serif" font-size="20">owner decision</text>
|
||||
<text x="781" y="298" text-anchor="middle" fill="#305842" font-family="Arial, sans-serif" font-size="18">expand or pause</text>
|
||||
|
||||
<path d="M 781 334 L 781 394 L 478 394 L 478 440" fill="none" stroke="#25435f" stroke-width="4" marker-end="url(#arrow)"/>
|
||||
<rect x="354" y="446" width="250" height="92" rx="16" fill="#f8fafc" stroke="#88a7c0" stroke-width="3"/>
|
||||
<text x="479" y="483" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="23" font-weight="700">Compare evidence</text>
|
||||
<text x="479" y="514" text-anchor="middle" fill="#496379" font-family="Arial, sans-serif" font-size="18">population • control • duration</text>
|
||||
<path d="M 354 492 L 165 492 L 165 334" fill="none" stroke="#9a4e3c" stroke-width="4" marker-end="url(#arrow)"/>
|
||||
<text x="95" y="455" fill="#8a4c39" font-family="Arial, sans-serif" font-size="19" font-weight="700">return route</text>
|
||||
<text x="70" y="481" fill="#8a4c39" font-family="Arial, sans-serif" font-size="17">legacy-only proposal</text>
|
||||
|
||||
<rect x="630" y="442" width="248" height="102" rx="16" fill="#fff1f0" stroke="#c76b62" stroke-width="3"/>
|
||||
<text x="754" y="479" text-anchor="middle" fill="#7f3934" font-family="Arial, sans-serif" font-size="22" font-weight="700">Outside route rollback</text>
|
||||
<text x="754" y="508" text-anchor="middle" fill="#8a4c39" font-family="Arial, sans-serif" font-size="18">data recovery and provider effects</text>
|
||||
<text x="754" y="532" text-anchor="middle" fill="#8a4c39" font-family="Arial, sans-serif" font-size="16">need a separate owner and plan</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
@@ -0,0 +1,41 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="640" viewBox="0 0 960 640" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Карта измеримого шва при модернизации legacy-системы</title>
|
||||
<desc id="desc">Клиентский запрос проходит через router. Старый и новый adapters разделены одним synthetic quote-preview швом, контрактом, владельцем и обратимым маршрутом. Данные и неизвестные эффекты остаются вне схемы.</desc>
|
||||
<defs>
|
||||
<marker id="arrow" viewBox="0 0 12 12" refX="10" refY="6" markerWidth="10" markerHeight="10" orient="auto-start-reverse">
|
||||
<path d="M 0 0 L 12 6 L 0 12 z" fill="#25435f"/>
|
||||
</marker>
|
||||
</defs>
|
||||
<rect width="960" height="640" fill="#f5f8fb"/>
|
||||
<rect x="24" y="22" width="912" height="592" rx="24" fill="#ffffff" stroke="#bfd0df" stroke-width="2"/>
|
||||
<text x="58" y="76" fill="#18324a" font-family="Arial, sans-serif" font-size="30" font-weight="700">Один измеримый шов вместо переписывания всего модуля</text>
|
||||
<text x="58" y="112" fill="#496379" font-family="Arial, sans-serif" font-size="20">synthetic quote preview: один вход, один ответ, объявленный эффект и owner</text>
|
||||
|
||||
<rect x="58" y="218" width="176" height="112" rx="16" fill="#e7f2ff" stroke="#3d78ae" stroke-width="3"/>
|
||||
<text x="146" y="262" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="24" font-weight="700">Client</text>
|
||||
<text x="146" y="294" text-anchor="middle" fill="#496379" font-family="Arial, sans-serif" font-size="18">one request</text>
|
||||
|
||||
<line x1="234" y1="274" x2="320" y2="274" stroke="#25435f" stroke-width="4" marker-end="url(#arrow)"/>
|
||||
<rect x="328" y="190" width="218" height="168" rx="18" fill="#edf7ee" stroke="#4e8b5a" stroke-width="3"/>
|
||||
<text x="437" y="237" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="26" font-weight="700">Router</text>
|
||||
<text x="437" y="272" text-anchor="middle" fill="#305842" font-family="Arial, sans-serif" font-size="19">route decision</text>
|
||||
<text x="437" y="303" text-anchor="middle" fill="#305842" font-family="Arial, sans-serif" font-size="19">manual gate</text>
|
||||
<text x="437" y="330" text-anchor="middle" fill="#305842" font-family="Arial, sans-serif" font-size="16">not an automatic release</text>
|
||||
|
||||
<line x1="546" y1="239" x2="630" y2="176" stroke="#25435f" stroke-width="4" marker-end="url(#arrow)"/>
|
||||
<line x1="546" y1="309" x2="630" y2="372" stroke="#25435f" stroke-width="4" marker-end="url(#arrow)"/>
|
||||
<rect x="638" y="112" width="242" height="132" rx="18" fill="#fff3df" stroke="#bd8135" stroke-width="3"/>
|
||||
<text x="759" y="160" text-anchor="middle" fill="#5a3a10" font-family="Arial, sans-serif" font-size="25" font-weight="700">Legacy adapter</text>
|
||||
<text x="759" y="193" text-anchor="middle" fill="#735021" font-family="Arial, sans-serif" font-size="18">old boundary stays</text>
|
||||
<text x="759" y="218" text-anchor="middle" fill="#735021" font-family="Arial, sans-serif" font-size="18">owner: legacy path</text>
|
||||
|
||||
<rect x="638" y="342" width="242" height="132" rx="18" fill="#e9f0ff" stroke="#596fae" stroke-width="3"/>
|
||||
<text x="759" y="390" text-anchor="middle" fill="#273d76" font-family="Arial, sans-serif" font-size="25" font-weight="700">Modern adapter</text>
|
||||
<text x="759" y="423" text-anchor="middle" fill="#384f85" font-family="Arial, sans-serif" font-size="18">proposed new path</text>
|
||||
<text x="759" y="448" text-anchor="middle" fill="#384f85" font-family="Arial, sans-serif" font-size="18">same declared contract</text>
|
||||
|
||||
<rect x="58" y="502" width="822" height="74" rx="14" fill="#f8fafc" stroke="#bfd0df" stroke-width="2" stroke-dasharray="8 7"/>
|
||||
<text x="80" y="534" fill="#18324a" font-family="Arial, sans-serif" font-size="21" font-weight="700">Decision record:</text>
|
||||
<text x="250" y="534" fill="#496379" font-family="Arial, sans-serif" font-size="20">contract • owner • evidence • return to legacy-only route</text>
|
||||
<text x="80" y="561" fill="#8a4c39" font-family="Arial, sans-serif" font-size="18">Outside this map: real data recovery, unknown side effects, production traffic and parity evidence.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
Reference in New Issue
Block a user