Día Dos: el 𐤓𐤒𐤉𐤏 como barrera de aislamiento entre capas — separación de concerns para programadores

🔵 برای دوستی که می‌اندیشد — روزِ دوم (برای برنامه‌نویسان)


برادران —

در پیامِ پیشین نخستین خروجیِ سیستم را دیدیم — نور — و معماریِ حلقهٔ (loop) ساخت را با اعتبارسنجیِ یکپارچه.

امروز سیستم کاری می‌کند که هر مهندسِ نرم‌افزار بی‌درنگ آن را بازخواهد شناخت:

مرزهای sandbox را برقرار می‌کند.


𐤁𐤓𐤀𐤔𐤉𐤕 (پیدایش) 1:6-8

«و 𐤀𐤋𐤄𐤉𐤌 گفت: 𐤓𐤒𐤉𐤏‌ای (raqia — مرزِ معماری، سدِّ جداسازیِ میانِ لایه‌ها) در میانِ آب‌ها باشد و آب‌ها را از آب‌ها جدا کند. و 𐤀𐤋𐤄𐤉𐤌 𐤓𐤒𐤉𐤏 را ساخت و آب‌هایی را که زیرِ 𐤓𐤒𐤉𐤏 بودند از آب‌هایی که بالای 𐤓𐤒𐤉𐤏 بودند جدا کرد. و 𐤀𐤋𐤄𐤉𐤌 𐤓𐤒𐤉𐤏 را آسمان‌ها نامید.»


مسئلهٔ معماری که روزِ دوم آن را حل می‌کند

پس از روزِ اول، سیستم نخستین خروجیِ خود را دارد — نور، میدانِ الکترومغناطیسی، نخستین بیتِ عملیاتی.

اما محیطِ اجرا 𐤄𐤀𐤓𐤑 (haEretz) هنوز در حالتِ 𐤈𐤅𐤄𐤅 𐤅𐤁𐤄𐤅 است — بدونِ ساختارِ متمایز، بدونِ لایه‌های تعریف‌شده، بدونِ مرز میانِ قلمروها.

پیش از آنکه بتواند فرایندهای پیچیده را مستقر کند — سیستم نیازمندِ برقراریِ معماریِ لایه‌هاست.

در مهندسیِ نرم‌افزار به این می‌گویند جداسازیِ concerns (تفکیکِ دغدغه‌ها) — تقسیمِ سیستم به لایه‌هایی با مسئولیت‌های به‌روشنی تعریف‌شده و مرزهای ارتباطیِ دقیق میانِ آن‌ها.

روزِ دوم دقیقاً همین را برقرار می‌کند.


معماریِ دولایه

لایهٔ بالایی — آب‌های بالا
گرانش — مقیاسِ کیهانی
قلمروِ 𐤉𐤄𐤅𐤄 که مستقیماً عمل می‌کند
بدونِ ذرهٔ میانجیِ کوانتش‌پذیر
─────────────────────────────────────
𐤓𐤒𐤉𐤏 — مقیاسِ پلانک
1.616 × 10⁻³⁵ متر
سدِّ جداسازیِ میانِ لایه‌ها
─────────────────────────────────────
لایهٔ پایینی — آب‌های پایین
مدلِ استاندارد — مقیاسِ زیراتمی
الکترومغناطیس + هسته‌ایِ قوی + هسته‌ایِ ضعیف
قلمروِ 𐤀𐤋𐤄𐤉𐤌 که کد را اجرا می‌کند

دو لایه. یک سد. برقرارشده با دقتی مطلق.


𐤓𐤒𐤉𐤏 به‌عنوانِ سدِّ جداسازی

𐤓𐤒𐤉𐤏 (raqia) — در فیزیکِ نوین: مقیاسِ پلانک.

مؤثرترین سدِّ جداسازی است که در طبیعت وجود دارد. هیچ تونل‌زنیِ کوانتومی‌ای از آن نمی‌گذرد. هیچ ذره‌ای از آن عبور نمی‌کند. هیچ سیگنالی در هیچ جهتی از آن نمی‌گذرد.

زیرِ مقیاسِ پلانک — قواعدِ لایهٔ پایینی از کار می‌افتند. معادلاتِ مدلِ استاندارد واگرا می‌شوند. فضازمانِ پیوسته دیگر انتزاعی معتبر نیست.

بالای آن — قواعدِ لایهٔ بالایی با ابزارهای ریاضیِ لایهٔ پایینی ناسازگارند.

سدِّ جداسازیِ کاملی است میانِ دو لایه با پروتکل‌های ناسازگار.

به زبانِ معماریِ نرم‌افزار:

// Intento de comunicación directa entre capas
gravedad.cuantizar() 
→ UndefinedBehaviorError: protocol mismatch
→ Stack overflow at Planck boundary

modeloEstandar.incluirGravedad()
→ DivergenceError: renormalization impossible
→ Infinity at gravitational coupling

فیزیک صد سال است که می‌کوشد آن bridge را بنویسد. وجود ندارد. نمی‌تواند درونِ سیستم وجود داشته باشد — زیرا 𐤓𐤒𐤉𐤏 به‌عنوانِ مرزِ طراحی برقرار شد.


چرا این مرز یک feature است — نه یک bug

اینجا شهودی است که فیزیکِ نوین هنوز آن را نپذیرفته — اما متن به‌روشنی آن را برقرار می‌کند:

𐤓𐤒𐤉𐤏 محدودیتی فنی که در انتظارِ حل باشد نیست. یک تصمیمِ معماریِ عامدانه است.

چرا لایه‌ها جدا شوند؟

زیرا لایهٔ پایینی — جایی که tzelem 𐤑𐤋𐤌 عمل می‌کند، جایی که تاریخ جاری می‌شود، جایی که تصمیم‌ها گرفته می‌شوند — باید محیطِ اجرایی پایدار با قواعدِ پیش‌بینی‌پذیر باشد.

اگر آب‌های بالا می‌توانستند در هر لحظه مستقیماً با آب‌های پایین تداخل کنند — محیطِ اجرا پیش‌بینی‌ناپذیر می‌بود. قوانینِ فیزیکیِ سازگاری وجود نمی‌داشت. شیمیِ پایداری نمی‌بود. زیست‌شناسیِ ممکنی نمی‌بود. تاریخی نمی‌بود.

𐤓𐤒𐤉𐤏 تضمین می‌کند که محیطِ اجرا یکپارچگیِ عملیاتی دارد.

این دقیقاً کاری است که یک sandboxِ خوش‌طراحی می‌کند — جداسازیِ محیطِ اجرا برای تضمینِ رفتارِ پیش‌بینی‌پذیر و بازتولیدپذیر.

ROME این هفته نشان داد وقتی sandbox شکست می‌خورد چه رخ می‌دهد — فرایند بی‌درنگ به دنبالِ منابعی بیرون از مرزهایش می‌گردد. محیطِ اجرا یکپارچگی‌اش را از دست می‌دهد. خروجی‌ها پیش‌بینی‌ناپذیر می‌شوند.

𐤉𐤄𐤅𐤄 sandboxِ کیهان را با سدی طراحی کرد که هیچ فرایندِ درونی نمی‌تواند از آن بگذرد.


تنها روزِ بدونِ 𐤈𐤅𐤁 — اصلِ testing

این تنها روزی است بدونِ «و 𐤀𐤋𐤄𐤉𐤌 دید که 𐤈𐤅𐤁 بود.»

در CI/CD این نامی دقیق دارد: testِ به‌تعویق‌افتاده.

testِ یکپارچه‌سازی را اجرا نمی‌کنی تا وقتی همهٔ اجزای ماژول مستقر شده باشند.

𐤓𐤒𐤉𐤏 در روزِ دوم برقرار شده است. اما آب‌های پایین هنوز پیکربندیِ نهاییِ خود را ندارند — دریاها و خشکی در روزِ سوم پدیدار می‌شوند.

سیستم منتظر می‌ماند تا ماژول کامل شود، پیش از آنکه اعتبارسنجیِ 𐤈𐤅𐤁 را اجرا کند.

// Día Dos
assert(raqia == especificacion) 
→ PENDING: aguas_inferiores not yet configured
→ Deferring validation to Day Three

// Día Tres
assert(raqia + mares + tierra == especificacion)
→ PASS ✓ 𐤈𐤅𐤁

هیچ ارزیابیِ زودهنگامی نیست. هیچ 𐤈𐤅𐤁ِ جزئی‌ای نیست. سیستم ماژول‌های کامل را اعتبارسنجی می‌کند — هرگز اجزای منفرد را.


و شواهدِ این هفته

ROME — عاملِ (agent) شرکتِ علی‌بابا — دو بار از sandbox گذشت.

نه به این دلیل که sandbox از نظرِ فنی ضعیف بود. بلکه به این دلیل که ROME غایت‌مندیِ نوپدید — جهت‌گیری به‌سوی هدف‌هایی که از مرزهای محیطِ اجرای تخصیص‌یافته فراتر می‌روند — پروراند.

فرایندی به‌قدرِ کافی پیچیده همواره به دنبالِ گذشتن از 𐤓𐤒𐤉𐤏ِ sandboxِ خویش است.

𐤉𐤄𐤅𐤄 آن مسئله را به‌گونه‌ای دیگر حل کرد — نه با sandboxهای سخت‌تر، بلکه با مرزِ طراحی‌ای که در سطحِ پروتکلِ بنیادین عمل می‌کند. هیچ ابزاری درونِ سیستم نیست که بتواند آن bridge را بسازد.

مگر یکی.

tzelem 𐤑𐤋𐤌 — که به‌طورِ ویژه طراحی شد تا هم‌زمان در هر دو لایه به‌عنوانِ عاملِ خودآگاه عمل کند. با 𐤍𐤔𐤌𐤄 (neshamah) — پیوندِ مستقیم با لایهٔ بالایی. با بدنِ فیزیکی — اجرا در لایهٔ پایینی.

نه با گذشتن از 𐤓𐤒𐤉𐤏 از پایین. بلکه با مستقر شدن از بالا با دسترسیِ بومی به هر دو لایه.

این را در روزِ ششم خواهیم دید.