الدرس الخامس — كيف تفهم الكود الذي ينتجه الذكاء الاصطناعي؟

الفرق بين Vibe Coder محترف ومبتدئ عشوائي هو قدرتك على قراءة الكود والتحقق منه — بدون حفظ ولا دراسة أكاديمية.

د
Devsamhan
٢ مايو ٢٠٢٦ ١٨ دقيقة قراءة ٥ تمارين Vibe Coding — Devsamhan
كيف تفهم الكود الذي ينتجه الذكاء الاصطناعي

هناك مفهوم خاطئ شائع في Vibe Coding: "لا تحتاج أن تفهم أي كود". هذا غير صحيح — وخطير. الذكاء الاصطناعي قد يُنتج كوداً يعمل ظاهرياً لكنه يحتوي على ثغرات أمنية، أو منطقاً خاطئاً، أو أداءً سيئاً. أنت لست مطالباً بكتابة الكود، لكنك مطالب بقراءته والتحقق منه. الفرق بين Vibe Coder محترف ومبتدئ عشوائي هو هذه المهارة تحديداً.

١. لماذا يجب أن تفهم ما ينتجه الذكاء الاصطناعي؟

أربعة أسباب عملية لا يمكن تجاهلها:

السبب المشكلة الفعلية
الأمان الذكاء الاصطناعي قد يكتب كوداً يُظهر بياناتك الحساسة
الصيانة بعد شهر لن تعرف كيف تُعدّل ما لا تفهمه
التواصل لن تستطيع وصف المشكلة للذكاء الاصطناعي بدقة
التحقق قد يعمل الكود لكنه يؤدي شيئاً مختلفاً عما تريد
📌
تنبيه مهم

الذكاء الاصطناعي يثق بك وأنت من يجب أن يثق بنفسه — تحقق دائماً من المنطق قبل النشر.

٢. طريقة القراءة السريعة (Rapid Scanning)

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

منهجية
١. ما الهيكل العام؟ (كم ملف؟ كم قسم؟)
٢. ما الأجزاء الكبيرة؟ (Functions, Components, Sections)
٣. أين المنطق الرئيسي؟ (أين القرارات تُتخذ؟)
٤. هل هناك شيء غريب أو غير متوقع؟
💡
نصيحة — ابدأ بالتعليقات

اقرأ التعليقات أولاً — الأسطر التي تبدأ بـ // أو <!-- --> — الذكاء الاصطناعي يكتبها لشرح ما فعله.

٣. اسأل الذكاء الاصطناعي أن يشرح لك

هذه أبسط وأقوى طريقة لفهم الكود — استخدم الذكاء الاصطناعي نفسه لشرح ما أنتجه.

اشرح لي هذا الكود كاملاً

prompt
اشرح لي هذا الكود بالعربي سطراً سطراً بأسلوب بسيط:

[الصق الكود هنا]

اشرح سطراً محدداً

prompt
ما الذي يفعله هذا السطر بالضبط؟
const filteredItems = items.filter(item => item.active === true);

اشرح المفهوم كأنني مبتدئ

prompt
ما معنى كلمة "async" في هذا الكود؟ اشرح لي كأنني لا أعرف البرمجة.

اشرح لماذا اختار هذه الطريقة

prompt
لماذا استخدمت localStorage هنا بدلاً من متغير عادي؟
ما الفرق العملي؟

٤. فهم أكواد HTML وCSS وJavaScript

ثلاثة طبقات لكل صفحة ويب — كل طبقة لها دور واحد واضح.

أ. HTML — هيكل الصفحة

فكّر في HTML كـ هيكل عظمي للصفحة. كل وسم (tag) له معنى ووظيفة:

html
<!-- هيكل صفحة بسيطة -->
<header>        <!-- رأس الصفحة (الشعار والقائمة) -->
  <nav>         <!-- قائمة التنقل -->
    <a>         <!-- رابط -->
  </nav>
</header>

<main>          <!-- المحتوى الرئيسي -->
  <section>     <!-- قسم مستقل -->
    <h1>        <!-- العنوان الرئيسي (واحد فقط لكل صفحة) -->
    <h2>        <!-- عنوان فرعي -->
    <p>         <!-- فقرة نصية -->
  </section>
</main>

<footer>        <!-- تذييل الصفحة -->
</footer>
💡
نصيحة — Semantic HTML

إذا رأيت كثيراً من <div> بدلاً من هذه الوسوم الواضحة — اطلب من الذكاء الاصطناعي إعادة الكتابة باستخدام Semantic HTML. الكود الناتج سيكون أوضح للقراءة وأفضل لمحركات البحث.

ب. CSS — المظهر والتصميم

CSS يُخبر المتصفح كيف يُظهر العناصر. القاعدة الأساسية: من تستهدف؟ {ماذا تفعل به؟}

css
/* استهداف عنصر مباشرة */
h1 {
  font-size: 2rem;     /* حجم الخط */
  color: #ffffff;      /* اللون */
  text-align: center;  /* التوسيط */
}

/* استهداف عنصر بـ class */
.card {
  background: #1a1a1a;  /* خلفية داكنة */
  padding: 1rem;         /* مسافة داخلية */
  border-radius: 8px;    /* حواف دائرية */
}
📌
تنبيه — علامة على كود ضعيف

إذا رأيت !important كثيراً في CSS — هذه علامة على كود ضعيف. اطلب من الذكاء الاصطناعي إعادة كتابته بدونها.

ج. JavaScript — الحياة والتفاعل

JavaScript هو ما يجعل الصفحة تتفاعل. المفاهيم الخمسة التي ستراها دائماً:

javascript
// ١. الحصول على عنصر من الصفحة
const button = document.querySelector('#myButton');

// ٢. الاستماع لحدث (ضغطة، تحريك، كتابة)
button.addEventListener('click', function() {
  // ٣. تنفيذ شيء عند الحدث
  alert('تم الضغط!');
});

// ٤. تغيير محتوى عنصر
document.querySelector('#title').textContent = 'عنوان جديد';

// ٥. إضافة/إزالة class (لتغيير التصميم)
button.classList.toggle('active');

٥. الأخطاء الشائعة في الكود المُنتج

تعلّم تمييز هذه الأنماط وكيف تطلب إصلاحها — كل مشكلة لها جملة واحدة تحلّها:

المشكلة كيف تعرفها ماذا تقول للذكاء الاصطناعي
كود مكرر نفس الكتلة تتكرر ٣ مرات أو أكثر "لاحظت تكراراً في هذا الكود، أعد كتابته بدون تكرار"
متغيرات مبهمة أسماء مثل x, temp, data2 "أعد تسمية المتغيرات بأسماء واضحة تصف وظيفتها"
دوال طويلة جداً دالة أطول من ٣٠ سطراً "قسّم هذه الدالة إلى دوال أصغر كل منها مهمة واحدة"
لا معالجة للأخطاء لا يوجد try/catch في كود يتعامل مع بيانات "أضف معالجة مناسبة للأخطاء"
localStorage بدون تحقق حفظ بيانات حساسة مباشرة "هل هذا آمن؟ وضّح لي ثم أصلحه إذا لزم"

٦. بناء قاموسك الخاص

كل مرة تواجه مصطلحاً جديداً، أضفه لقائمتك. القاعدة: المصطلح → معناه البسيط → مثال.

قاموس المبتدئ
function   → وصفة طبخ — مجموعة خطوات لها اسم
variable   → صندوق يخزّن قيمة
array      → قائمة من العناصر [١, ٢, ٣]
object     → بطاقة تعريف {الاسم: "عبدالله", العمر: 25}
if/else    → قرار: إذا كان كذا → افعل كذا، وإلا → افعل كذا
loop       → كرّر هذه الخطوة حتى ينتهي الشرط
API        → وسيط يجلب بيانات من موقع آخر
async      → "انتظر هذه الخطوة قبل المتابعة"
💡
نصيحة — نمّ قاموسك تدريجياً

لا تحاول حفظ كل المصطلحات دفعةً واحدة. أضف مصطلحاً أو اثنين في كل جلسة — بعد شهر ستفاجأ بحجم ما تعرفه.

تمرين عملي

تمرين عملي — اقرأ وحلّل كود الدرس الرابع
  1. خذ أي كود أنتجه الذكاء الاصطناعي في الدرس الرابع
  2. افتح محادثة جديدة مع ChatGPT أو Claude والصق الكود واكتب:
    prompt
    اشرح لي هذا الكود بالعربي بأسلوب بسيط — قسّمه إلى أجزاء واشرح كل جزء
  3. حدد ٣ أشياء لم تكن تعرفها وأضفها لقاموسك الشخصي
  4. ابحث في الكود عن أي من الأنماط السيئة الواردة في الجدول في القسم الخامس
  5. إذا وجدت مشكلة، اطلب من الذكاء الاصطناعي إصلاحها وقارن الكود قبل وبعد
شارك الدرس: X (تويتر) واتساب