الخريطة رحلةُ بايتةٍ عبر الستاك
المتصفّح الشبكة الخادم (Node / Express) قاعدة البيانات
[ React ] ──HTTP──▶ [ TCP ] ──▶ ┌──────────────────────────┐ ──▶ ┌──────────────┐
▲ │ ◻ نفتح هذا الصندوق │ │ ◻ وهذا │
│ │ Express → Zod → الخدمة │ │ SQL / صفّ │
└────────── المظروف ◀────────┤ bcrypt → Prisma │◀────┤ (الحالة) │
└──────────────────────────┘ └──────────────┘
(٩) نتتبّع بايتةً عبر كلِّ الطبقات → (١٠) ثم نشغّل كودَ C في حاوية Docker
القرارات التي تشكّل عمق المنهج
| القرار | الاختيار | الأثر |
|---|---|---|
| عمق Node | من جذور C | نشتقّ الـ event loop من non-blocking fds + reactor. async/await نتيجةٌ تشتقّها، لا صندوق أسود. |
| طبقة البيانات | SQL من الجذور | تكتب SQL حقيقياً وتفهم العلائقيّ، ثم Prisma طبقةٌ فوقه. |
| React | بقدر ما يُغلق الدائرة | تركيزٌ على تدفّق البيانات (طلب/عرض/JWT)، لا دواخل React. |
| TypeScript | تُعاد، مربوطةً بالستاك | أنواعٌ تطبيقيّة تجعل التدفّق مكتوب-النوع طرفاً لطرف. |
كيف تقرأ هذا المنهج
كلُّ إقليمٍ يمشي على نَفَسٍ واحد: لغزٌ مستفزّ (المشكلة قبل الحل) ← ليش ثم كيف ← بناءٌ من الصفر بقيود (لا حلٌّ جاهزٌ قبل الكفاح) ← خلاصةٌ تربط بالشجرة ← وصلةٌ لكود نمط SelfLab. القاعدة الذهبيّة: لا تنزل لإقليمٍ قبل أن تبني لغزَ الذي قبله بيدك. هذا المنهج عن القدرة، لا المعلومة.
الأقاليم
أحد عشر إقليماً، من بروتوكولٍ لمستَ نصفَه بأصابعك في nc، حتى تاجٍ يجمع كلَّ ما تعرفه.
إقليم 00
الجسر: HTTP
HTTP يتبلور من بذرة
nc: التأطير فوق التيّار (CRLF + Content-Length)، دلالات الأفعال، عائلات الرموز، انعدام الحالة، REST.ابنِ، لا تقرأ فقطافتح
إقليم 01
JS + TS من عيون C
اللغة كنقيض C: النوع على القيمة، الذاكرة المُدارة، الإغلاق من جذر stack/heap، ثم TypeScript التطبيقيّ وحقيقة الـ erasure.
ابنِ، لا تقرأ فقطافتح
إقليم 02
Node من جذور C
حلقةُ الأحداث = reactor فوق epoll. الخيط الواحد،
await لا يحجب، والشرخ الخطير: العملُ المحسوب يجمّد الجميع.ابنِ، لا تقرأ فقطافتح
إقليم 03
من http الخام إلى Express
الفكرة الواحدة: سلسلةُ middleware يمرّ بها كلُّ طلب. تبني mini-Express، ثم route/controller/service.
ابنِ، لا تقرأ فقطافتح
إقليم 04
العلائقيّ و SQL من الجذور
الشذوذ في الجدول المسطّح، الجدول = مجموعة، المفاتيح والأجنبية والتطبيع، SQL/JOIN/ACID/الفهارس على ERD مشروعك.
ابنِ، لا تقرأ فقطافتح
إقليم 05
Prisma
لماذا ORM؟ خطّ schema→migrate→generate، والأنواعُ المولَّدة تعيد ما محته اللغة، و
include = JOIN، وفخّ N+1.ابنِ، لا تقرأ فقطافتح
إقليم 06
الحدود غير الموثوقة: Zod
ضمانةُ المترجم تنتهي عند حدّ البرنامج. الحرّاس الثلاثة، السكيمةُ قيمةٌ وقت التشغيل، و
z.infer الوجهُ المقابل لـ Prisma.ابنِ، لا تقرأ فقطافتح
إقليم 07
الهويّة بلا حالة
bcrypt (تجزئةٌ بطيئةٌ مملَّحة) وبناءُ JWT من الصفر (base64url + HMAC). التوقيعُ ≠ تشفير، و authenticate/authorize.
ابنِ، لا تقرأ فقطافتح
إقليم 08
React يُغلق الدائرة
UI = f(state): تصريحيّةٌ بدل عبثِ DOM. المكوّنات، hooks (تقف على الإغلاق)، و
fetch يُغلق الدائرة بالـ JWT والمظروف وCORS.ابنِ، لا تقرأ فقطافتح
إقليم 09
التدفّق الكامل end-to-end
تتبّعُ بايتةٍ عبر ١٨ خطوة وتسعة أقاليم، رحلةُ النوع، الثالوثُ المعماريّ، والتشخيصُ بالنموذج الذهنيّ.
ابنِ، لا تقرأ فقطافتح
إقليم 10
الكابستون: نظام التصحيح
تشغيلُ C غريبٍ بأمان: child_process لا-حاجب + عزلُ Docker (التهديد↔البدائيّ) + معاملةٌ ذرّيّة. حيث تلتقي الشجرتان.
ابنِ، لا تقرأ فقطافتح
مراجع · A
الملاحق + الورقة المرجعيّة
شجرةُ المهارات وقد اكتملت، النماذجُ الذهنيّة العشرة، الورقةُ المرجعيّة لكلِّ تقنية، ومخطّطُ التدفّق الكامل (كتابة/قراءة/كابستون).
خريطتُك حين تديرافتح
ما لن يُعاد شرحه (مبنيٌّ في مناهجك السابقة)
هذا المنهج يبني فوق ما أتقنته، ويحيل إليه بدل تكراره:
- بدائيات Docker (namespaces / cgroups / OverlayFS / socket / run-flags / الأمن) → في الكابستون نُطبّقها، لا نعيدها.
- TCP / IP / ports / sockets / OSI / NAT / DNS → منهج الشبكات؛ الإقليم ٠ يبني فوق بذرة «تكلّم HTTP بأصابعك».
- web ↔ app ↔ db، reverse proxy، HTTPS/TLS → منهج بنية الويب؛ هنا نفتح صندوقَي الـ app والـ db.
- نظرية الأنواع العميقة (variance، البرمجة على مستوى الأنواع) → منهج TS القديم مرجعُك للغوص؛ هنا فقط ما تحتاجه لإدارة المشروع.
الستاك الكامل · من باب الخادم إلى داخله
ليش قبل كيف · صُمّم لـ يزيد