هيكل توليد الكود

ليه "اكتبلي function" بيفشل

4 دقيقة للقراءة

اتعرّف على كريم. مهندس backend مستوى متوسط، بقاله 6 شهور بيستخدم AI coding assistants. الكود اللي بيرجعله شكله صح، بس بيتكسّر بطرق خفية في production. عايز يكتب prompts تطلّع كود يقبله فعلاً في code review. بنهاية الكورس ده، هيشحن PR حقيقي 200 سطر على GitHub بـ prompts بس.

نفس الهدف، اتنين prompts — انقر تشوف اللي كريم كان لازم يكتبه

غامض
Write a Python function to dedupe a list.

أول رد فعل عند كريم زي أي مهندس. بيكتب:

Write a Python function to dedupe a list.

ده اللي رجّعه Claude Sonnet 4.5 فعلاً:

# Python function to dedupe a list

Here are several approaches to remove duplicates from a list:

## 1. Using set (simplest, but doesn't preserve order)
def dedupe_list(lst):
    """Remove duplicates from a list (order not preserved)"""
    return list(set(lst))

## 2. Using dict.fromkeys() (preserves order, Python 3.7+)
def dedupe_list(lst):
    """Remove duplicates while preserving order"""
    return list(dict.fromkeys(lst))

Captured from Claude Sonnet 4.5 (claude-sonnet-4-5) on 2026-04-27. Re-runs may differ slightly.

الموديل رجّع functions اتنين بنفس الاسم. خمّن الـ trade-off اللي كريم مهتم بيه. ما رجّعش tests. ما التزمش بـ signature واحد. المخرج ده tutorial، مش وحدة كود كريم يقدر يلصقها في ملف.

ليه حصل ده؟ الـ prompt ساب كل قرار مهم للموديل:

  • نحافظ على الترتيب ولا لأ؟
  • النصوص case-sensitive؟
  • الأداء هو الهدف ولا الوضوح؟
  • إيه الـ signature اللي def المفروض يستخدمه؟
  • النتيجة فيها tests؟

لما ما تثبّتش الحاجات دي، الموديل بيختار default منطقي — و"المنطقي" غالباً معناه وري المستخدم خيارات وخليه هو يختار. ده مفيد لـ tutorial. بس كارثة لـ code change.

خريطة معرفة كورس الكود

الكورس ده هيديك skeleton من 4 blocks — INTENT, CONSTRAINTS, TESTS, FORMAT — بيجبر الموديل على function واحدة بشكل محدد. هتشوف نفس مهمة dedupe متعملة صح في الدرس الخامس.

تدفق الكورس بسرعة:

Prompt غامض مقابل prompt على شكل skeleton بيطلّعوا مخرجات مختلفة خالص:

Prompt غامض مقابل Prompt بشكل skeleton

Tutorial

غامض: "اكتبلي function تشيل التكرار"

عدد الـ functions2 (نفس الاسم)
فيه testsلأ
Type hintsلأ
بيشحن من غير تعديللأ
العيوب
  • الموديل بيختار defaults ما ثبّتهاش
  • المخرج tutorial، مش وحدة كود
  • بتحرق وقت في تنضيف prose واختيار
جاهز للصق

Skeleton: INTENT + CONSTRAINTS + TESTS + FORMAT

عدد الـ functions1
فيه testsأيوه (4 asserts)
Type hintsأيوه
بيشحن من غير تعديلأيوه
المزايا
  • الـ signature إنت اللي ثبّته، مش الموديل
  • Asserts بتثبت الصح قبل الـ commit
  • المخرج بينزل في ملف .py على طول

التالي: الـ skeleton الرباعي نفسه. :::

اختبار

الوحدة 1: الـ Skeleton الرباعي للكود

خذ الاختبار
هل كان هذا الدرس مفيدًا؟

سجّل الدخول للتقييم

نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.