بنية الطبقات الثلاث:كود نظيف بالذكاء الاصطناعي
بنية الطبقات الثلاث توقف الذكاء الاصطناعي عن كتابة كود فوضوي: الواجهة ومنطق العمل والبيانات، مع تسلسل الأوامر الدقيق الذي يبقي كل طبقة نظيفة.
يولّد الذكاء الاصطناعي كوداً فوضوياً لأن مشروعك بلا بنية، وليس لأن الذكاء الاصطناعي سيئ. بنية الطبقات الثلاث تحل المشكلة. أعطه ثلاث طبقات واضحة — مكوّنات للواجهة، وخدمات لمنطق العمل، وطبقة بيانات لقاعدة البيانات — واطلب منه طبقة واحدة في كل مرة، فيعطيك الذكاء الاصطناعي نفسه كوداً نظيفاً وقابلاً للاختبار والتوسع. بنيتُ أكثر من 3 ملايين سطر بهذه الطريقة.
إليك النمط، ولماذا ينجح، وتسلسل الأوامر الدقيق.
المشكلة: الذكاء الاصطناعي بلا بنية يصنع الفوضى
تطلب من الذكاء الاصطناعي بناء ميزة. يعطيك كوداً. تلصقه. بعد أسبوع تصبح قاعدة الكود فوضى: استدعاءات قاعدة البيانات متناثرة في كل مكان، ومنطق العمل مختلط بالواجهة، وكود منسوخ ومكرر في كل مكان، ويستحيل اختباره، وينهار عندما تحاول التوسع.
المشكلة ليست في الذكاء الاصطناعي. المشكلة في بنيتك.
يولّد الذكاء الاصطناعي ما تطلبه. لكن بلا بنية واضحة يخلط المسؤوليات، ويصنع أنماطاً غير متسقة، ولا يستطيع الحفاظ على هيكل قاعدة الكود — فكل أمر يصنع فوضى جديدة. الذكاء الاصطناعي لا يعرف بنيتك. عليك أنت أن توجّهه.
الحل: بنية الطبقات الثلاث
تخيّل تطبيقك كمبنى من ثلاثة طوابق. المكوّنات في الأعلى — للواجهة فقط. الخدمات في الوسط — منطق العمل. وطبقة البيانات في الأسفل — قاعدة البيانات وواجهات API. كل طابق يتحدث فقط مع الطابق الذي تحته مباشرة. وعندما يعرف الذكاء الاصطناعي أي طبقة يعمل عليها، يولّد كوداً نظيفاً.
- الطبقة 1 — المكوّنات (للواجهة فقط). ما ينتمي إليها: منطق العرض، وتفاعلات المستخدم، والتوجيه، والتخطيط. وما لا ينتمي إليها: استدعاءات قاعدة البيانات، ومنطق العمل، والتحقق، والصلاحيات. المكوّن السيئ يجلب المستخدمين من قاعدة البيانات داخل نفسه ويصفّيهم حسب الحالة في الطريق. والمكوّن الجيد يطلب من hook واحد «المستخدمين النشطين»، ويعرض هيكلاً تحميلياً أثناء الانتظار، ثم يعرض القائمة. هذه هي مهمته كلها.
- الطبقة 2 — الخدمات (منطق العمل). ما ينتمي إليها: جلب البيانات، والتحقق، والصلاحيات، وقواعد العمل، وتحويل البيانات. وما لا ينتمي إليها: أي شيء يُعرض على الشاشة، أو حالة خاصة بمكوّن بعينه. تعرف UserService القواعد — المؤسسة مطلوبة، وأي المرشّحات تُطبَّق، وماذا يحدث عند الفشل — وهي المكان الوحيد الذي تعيش فيه هذه القواعد.
- الطبقة 3 — البيانات (قاعدة البيانات وواجهات API). استعلامات قاعدة البيانات، واستدعاءات API، والتكاملات الخارجية. لا يُوصَل إليها إلا عبر الخدمات، وأبداً مباشرة من المكوّنات.
كيف تكتب الأوامر للذكاء الاصطناعي بهذا النمط
الطريقة الخاطئة أمر واحد: «ابنِ ميزة لإدارة المستخدمين». والنتيجة كل شيء في مكوّن واحد — استدعاءات قاعدة البيانات والتحقق والواجهة مختلطة معاً. أما الطريقة الصحيحة فثلاثة أوامر، من الأسفل إلى الأعلى، طبقة لكل أمر:
- الخدمة أولاً: «ولّد UserService بدوال لجلب المستخدمين وإنشائهم وتحديثهم وحذفهم. أضف التحقق ومعالجة الأخطاء.»
- ثم الـhook: «أنشئ hook باسم useUsers يغلّف UserService مع التخزين المؤقت.»
- المكوّن أخيراً: «ابنِ مكوّن UserList يستخدم hook باسم useUsers. اعرض حالات التحميل وعالج الأخطاء.»
النتيجة: كود نظيف ومفصول، وكل طبقة تركّز على مسؤوليتها. طلب كل شيء دفعة واحدة هو الخطأ الأول — يولّد الذكاء الاصطناعي كوداً مختلطاً تتشابك فيه كل الطبقات. طبقة واحدة في كل مرة، وابنِ من الأسفل إلى الأعلى.
الكتابThe Solopreneur Revolutionلويس غونسالفيس عن بناء مشروع رائد أعمال منفرد بالذكاء الاصطناعي دون ترك وظيفتك.احصل على الكتاب ←يعمل مع أي مجموعة تقنيات
النمط نفسه بأدوات مختلفة:
| مجموعة التقنيات | سلسلة الطبقات الثلاث |
|---|---|
| React + Supabase | Component → Hook → Service → Supabase |
| Next.js + Prisma | Component → Server Action → Service → Prisma |
| Vue + Firebase | Component → Composable → Service → Firebase |
| Angular + REST API | Component → Service → HTTP Client → REST API |
لديك كود فوضوي بالفعل؟ الترحيل في 5 خطوات
- اعثر على كل استدعاءات قاعدة البيانات. ابحث في مكوّناتك عن استدعاءات مباشرة لقاعدة البيانات وواجهات API.
- أنشئ الخدمات. انقل كل الوصول إلى البيانات إلى فئات خدمات — فالاستعلام الذي كان داخل مكوّن يعيش الآن في دالة خدمة مع معالجة للأخطاء.
- أنشئ الـhooks. غلّف كل خدمة بطبقة جلب البيانات في إطار عملك لتحصل المكوّنات على التخزين المؤقت وحالات التحميل مجاناً.
- حدّث المكوّنات. استبدل نمط الجلب داخل المكوّن باستدعاء hook واحد.
- دع الذكاء الاصطناعي يساعد. الأمر: «أعد هيكلة هذا المكوّن ليستخدم نمط الـhook. انقل منطق قاعدة البيانات إلى خدمة.» وسينقل الذكاء الاصطناعي كل جزء.
تظهر الفائدة فوراً في الاختبار: الخدمات تُختبر دون أي واجهة، والـhooks تُختبر كأغلفة رفيعة، والمكوّنات تُختبر مع محاكاة الـhook. طبقات نظيفة = اختبار سهل.
لماذا ينجح هذا
بلا طبقات، يولّد الذكاء الاصطناعي مكوّنات ضخمة متراصة، ويكرر المنطق عبر الملفات، وينتج كوداً يصعب اختباره وصيانته وينهار عند التوسع. ومع الطبقات، يولّد كوداً مركّزاً لكل طبقة، ويتركز المنطق في الخدمات، وتُختبر كل طبقة باستقلال — ويتوسع إلى ملايين الأسطر.
بنيتُ أكثر من 3 ملايين سطر من الكود بهذه الطريقة. وهي تنجح. هذه هي البنية نفسها خلف FIKR Space: أكثر من 3 ملايين سطر، و964 جدولاً في قاعدة البيانات، و5 منتجات متكاملة، بُنيت بواسطة Claude وتعمل في بيئة الإنتاج. وهناك خطآن يجب تجنبهما: تخطي الخدمات («سأستخدم الـhooks مباشرة مع قاعدة البيانات» — فمنطق العمل داخل الـhooks يصعب اختباره ويستحيل إعادة استخدامه) والمكوّنات المتضخمة («سأضع التحقق في المكوّنات» — فلا يمكنك إعادة استخدامه أو اختباره دون واجهة).
قبل الإطلاق، نفّذ قائمة التحقق: لا استيراد لقاعدة البيانات داخل المكوّنات، وكل منطق العمل في الخدمات، والمكوّنات تتعامل مع الواجهة فقط، والـhooks تغلّف الخدمات، والخدمات قابلة للاختبار دون واجهة، ومعالجة الأخطاء في كل الطبقات. هذا النمط هو الركيزة 2 من الركائز الخمس للبرمجيات الجاهزة للإنتاج — وبمجرد وجود الطبقات تصبح الأوامر المنظّمة مثل طريقة PRP أكثر موثوقية بكثير، لأن لكل أمر مكاناً واضحاً.
12 أسبوعاًمسيرتك في الشركات لم تكن الخطة أبداًقدّم طلبك إلى Solopreneur Accelerator.قدّم الآن ←الأسئلة الشائعة
هل أحتاج إلى فهم الكود لاستخدام بنية الطبقات الثلاث؟
تحتاج إلى فهم الخريطة، لا الشوارع. يكفي أن تعرف أن الواجهة ومنطق العمل والوصول إلى البيانات ثلاثة طوابق منفصلة — وأن كل أمر يستهدف طابقاً واحداً بالضبط — لتوجّه الذكاء الاصطناعي بشكل صحيح. البنية أداة تواصل بينك وبين الذكاء الاصطناعي، والتوجيه هو نصفك من العمل.
هل 3 طبقات مبالغة في منتج أولي صغير؟
لا، لأن التكلفة شبه معدومة والبديل يتراكم. ثلاثة أوامر بدل واحد في اليوم الأول تعني دقائق إضافية من العمل؛ أما فك تشابك استدعاءات قاعدة البيانات من خمسين مكوّناً في الشهر السادس فيعني أسابيع. النمط يصغر إلى مشروع نهاية أسبوع ويكبر إلى ملايين الأسطر — وقد طبّقته في الطرفين.
ما الذي يوضع في الخدمة وما الذي يوضع في الـhook؟
القواعد تذهب إلى الخدمة، والتمديدات إلى الـhook. إذا كان قرار عمل — ما الصحيح، ومن المسموح له، وكيف تُحسب القيمة — فمكانه الخدمة. وإذا كان يتعلق بإيصال البيانات إلى الشاشة — التخزين المؤقت، ومؤشرات التحميل، وإعادة الجلب — فمكانه الـhook. وعند الشك ضعه في الخدمة: فالخدمات أسهل في الاختبار وإعادة الاستخدام.
كيف أجعل الذكاء الاصطناعي يحترم الطبقات تلقائياً؟
اكتب القاعدة في تعليمات مشروعك الدائمة: المكوّنات لا تستورد عميل قاعدة البيانات أبداً، وكل وصول إلى البيانات يمر عبر الخدمات، والـhooks تغلّف الخدمات. ثم اجعل كل أمر يسمّي طبقته («أنشئ دالة خدمة من أجل…»). الذكاء الاصطناعي يتبع البنية المكتوبة فعلاً — لا التي في رأسك.
إلى أي حد أنت محاصر فعلاً؟
أجرِ مؤشر الاختناق الوظيفي، التقييم المجاني لمعرفة مدى استعدادك لتصبح رائد أعمال منفرداً.