أخطاء البرمجة بالذكاء الاصطناعي:4 أخطاء قاتلة
أخطاء البرمجة بالذكاء الاصطناعي: كود يعمل اليوم ويفشل بصمت في الشهر السادس. أربعة أخطاء ارفضها — كتل JSON وenum وany والأخطاء الصامتة — مشروحة ببساطة.
أخطاء البرمجة بالذكاء الاصطناعي لن تخرّب قاعدة الكود بكود ينهار. بل تخرّبها بكود يعمل — لنحو ستة أشهر. Claude مخطئ بثقة طوال الوقت، والنسخة الخطيرة ليست حين يكون مخطئاً بوضوح. بل حين يكون مخطئاً بشكل معقول: كود يُترجَم ويعمل ويبدو سليماً، لكنه مبني على افتراض خاطئ عن بياناتك أو منطق عملك.
خلال أحد عشر شهراً من بناء FIKR Space، ظلت الأنماط السيئة الأربعة نفسها تخرج من الذكاء الاصطناعي. كان كل واحد منها سيخلق ألماً مختلفاً ومحدداً بعد ستة أشهر لو قبلته. إليك إياها بلغة بسيطة — ما يقترحه Claude، ولماذا يبدو معقولاً، وما سيكلفك بالضبط لاحقاً.
لماذا يميل الذكاء الاصطناعي افتراضياً إلى كود متوسط
تدرّب Claude على ملايين قواعد الكود، ومعظمها كان متوسط الجودة. عندما لا تحدد ما تريد، تحصل على مخرجات قاعدة الكود الوسيطة — مليئة باختصارات وتنازلات لن يقبلها مهندسون ذوو خبرة أبداً. لا شيء من هذه الاختصارات يفشل اليوم. وكلها تفشل لاحقاً، ولهذا بالضبط تنجو من مراجعة مؤسس لا يتحقق إلا من أن الميزة تعمل الآن.
مهمتك ليست كتابة الكود. مهمتك أن تكون الصوت الخبير في الشراكة — أن تعترض حين لا يبدو شيء سليماً، حتى حين لا تستطيع التعبير فوراً عن السبب.
الخطأ 1: كتلة JSON — درج خردة بدل خزانة ملفات
سيقترح Claude تخزين البيانات المهيكلة ككتلة JSON — حقل مرن واحد يحمل كل شيء — بدل جدول مناسب بأعمدة مناسبة. تخيّل أنك ترمي مستنداتك في درج خردة بدل خزانة ملفات. يعمل الدرج جيداً ما دام فيه عشرة مستندات.
حدث هذا معي في الأسبوع الثالث. اقترح Claude تخزين بيانات الأهداف الاستراتيجية للمستخدمين — الأهداف الربع سنوية وحالة OKR ومقاييس المواءمة — كعمود JSON في جدول المستخدمين. كان سيعمل. لنحو ثلاثة أشهر. ثم احتجت إلى الإجابة عن سؤال عمل أساسي: أرني كل المستخدمين الذين يقل إنجازهم لأهداف الربع الثالث عن ستين بالمئة. وأمام كتلة JSON، الإجابة تعني فتح درج خردة كل مستخدم وقراءة كل ما بداخله قبل أن تستطيع التصفية — نهج يصمد مع خمسين مستخدماً ويموت عند خمسمئة. وإصلاحه لاحقاً كان سيعني ترحيل ستة أشهر من بيانات العملاء وإعادة كتابة اثنتي عشرة خدمة. أما الاعتراض في الأسبوع الثالث فكلّف ساعة إضافية من نقاش التصميم. وإعادة البناء في الشهر السادس كانت ستكلف ثلاثة أسابيع.
الخطأ 2: التعدادات (Enums) — نحت خيارات اليوم في الحجر
التعداد (enum) حقل قيمه المسموحة محددة سلفاً — كأن تطبع قائمة مطعمك بدل كتابتها على سبورة. لدى Claude ميل قوي نحو التعدادات لأي حقل له مجموعة صغيرة معروفة من القيم: مستوى الاشتراك، دور المستخدم، نوع الإشعار. وكل واحد منها يبدو ثابتاً بوضوح في لحظته.
تبيّن أن كل واحد من حقولي احتاج إلى قيم جديدة خلال سنة — مستوى اشتراك جديد، ودور جديد، وفئة إشعار جديدة. وتغيير التعداد في قاعدة البيانات يتطلب طقساً متعدد الخطوات: إسقاط القيود، وإعادة إنشاء النوع، وتحديث كل صف. أما جدول البحث — نسخة السبورة — فجدول عادي ينمو بإضافة صف. التعداد يقفل العمود على واقع اليوم؛ وجدول البحث يستوعب واقع الغد. النمط نفسه، والافتراضي مختلف. اعترض. واطلب جدول البحث.
12 أسبوعاًمسيرتك في الشركات لم تكن الخطة أبداًقدّم طلبك إلى Solopreneur Accelerator.قدّم الآن ←الخطأ 3: أنواع any — تعطيل جهاز إنذار الدخان
مهمة TypeScript كلها أن تلتقط فئة كاملة من الأخطاء قبل أن يراها مستخدموك، عبر التحقق من أن كل قطعة بيانات بالشكل الذي يتوقعه الكود. وعندما يفشل هذا التحقق في شيء معقد، يقترح Claude أحياناً وسم البيانات بـany — وهو يعني «توقف عن فحص هذا». يختفي الخطأ. ينجح البناء. وتُطلق الميزة. لقد عطّلت للتو جهاز إنذار دخان، ولا يحدث شيء حتى يظهر الدخان.
هذا أخبث الأنماط لأن العَرَض غير مرئي. بعد ستة أشهر، تغيّر شيئاً في مكان آخر من المنتج، فلا يلتقط خطأ النوع الكسر الذي كان يجب أن يلتقطه — لأن any في مكان ما قبله يبتلع الإشارة بصمت. يصل الخلل إلى الإنتاج. وتعرف به من بلاغ عميل. كل any تقبله الآن هو ظهيرة ثلاثاء مستقبلية تقضيها في تصحيح مشكلة كان نظام الأنواع مفترضاً أن يمنعها.
الخطأ 4: ابتلاع الأخطاء بصمت — إخفاقات لا يسمعها أحد
الأسوأ بين الأربعة. سيكتب Claude أحياناً ما يعادل try { ... } catch (e) { return null } — «إن حدث أي خطأ، لا تقل شيئاً وأعد نتيجة فارغة» — ويسميه معالجة أخطاء رشيقة. هذا الكود يجتاز كل اختبار تكتبه، لأن اختباراتك لا تثير نمط الفشل عمداً.
في الإنتاج، حين يقع الفشل الحقيقي، تعيد الدالة لا شيء. بصمت. لا يعرف بقية النظام أن شيئاً ساء. يرى المستخدم شاشة فارغة. ولا يُسجَّل الخطأ في أي مكان. لا تعرف إلا حين يشتكي عميل — وحتى حينها لا تستطيع تتبع ما حدث، لأن أي خطأ لم يُرفع أصلاً. حارب هذا في كل مرة: إخفاقات محددة، تُعالَج بشكل محدد، وتُسجَّل بصوت عالٍ. الأسطر الخمسة الإضافية من الكود توفر عليك العطل القادم.
النمط وراء أخطاء البرمجة بالذكاء الاصطناعي الأربعة
| ما يقترحه Claude | لماذا يبدو سليماً اليوم | ألم ما بعد ستة أشهر |
|---|---|---|
| كتلة JSON بدل جداول مناسبة | تعمل مع 50 مستخدماً | تموت عند 500 مستخدم؛ إعادة بناء في 3 أسابيع وترحيل بيانات |
| تعداد (enum) بدل جدول بحث | القيم تبدو ثابتة | كل قيمة جديدة تحتاج طقس ترحيل متعدد الخطوات |
any بدل أنواع مناسبة | البناء ينجح | أخطاء الأنواع تتوقف عن التقاط الأخطاء الحقيقية؛ وتصحح في الإنتاج |
| أخطاء تُبتلع بصمت | «لا يرمي أي خطأ أبداً» | إخفاقات غير مرئية، وشاشات فارغة، وأعطال يتعذر تتبعها |
الخبر الجيد: Claude يستجيب جيداً حين تتحداه. عندما تقول «لا، أريد هذا كجدول منفصل لا ككتلة JSON — وإليك السبب»، سيعيد هيكلة الكود بسلاسة وغالباً يحسّن ما اقترحه أصلاً. النموذج متعاون. عليك فقط أن تكون الصوت الخبير.
عادتان تجعلان الاعتراض منهجياً لا محظوظاً. أطلع الذكاء الاصطناعي على المطلوب جيداً قبل أن يبني أي شيء — وهذه هي طريقة PRP. ولا تدع السرعة تحل محل البنية — وهذا هو درس فخ البرمجة بالإحساس كله. حدّد. اعترض. واطلب البنية الصحيحة. يكلف ذلك وقتاً أطول قليلاً لكل ميزة، ويشتري لك قاعدة كود ما زال بإمكانك تطويرها في الشهر الثاني عشر بدل قاعدة تضطر إلى إعادة بنائها.
الكتابThe Solopreneur Revolutionلويس غونسالفيس عن بناء مشروع رائد أعمال منفرد بالذكاء الاصطناعي دون ترك وظيفتك.احصل على الكتاب ←الأسئلة الشائعة
لماذا يسبب الكود المولَّد بالذكاء الاصطناعي مشكلات بعد شهور؟
لأن الذكاء الاصطناعي يُحسّن لجعل طلب اليوم يعمل، لا لكيفية تطور الكود. وإذ تدرّب على ملايين قواعد الكود المتوسطة في معظمها، فإنه يميل افتراضياً إلى اختصارات — كتل مرنة، وقوائم قيم ثابتة، وفحوص معطلة، وأخطاء مبتلعة — تجتاز كل اختبار الآن ولا تكشف تكلفتها إلا حين يكبر المنتج أو يتغير.
كيف أكتشف الكود السيئ المولَّد بالذكاء الاصطناعي إن لم أستطع قراءة الكود؟
استجوب التغيير والفشل، لا الصياغة. اسأل الذكاء الاصطناعي: ماذا يحدث حين نحتاج إلى إضافة قيمة جديدة هنا؟ كيف سنبحث في هذه البيانات حين تصبح أكثر عشر مرات؟ ماذا يحدث حين تفشل هذه العملية — إلى أين يذهب الخطأ؟ إن تضمنت الإجابات عمليات ترحيل أو إعادة كتابة أو «تعيد لا شيء»، فاعترض.
هل أترك Claude يتخذ قرارات بنيتي؟
لا. Claude منفّذ بارع ومهندس معماري متوسط. اسأله هل يجب أن يكون هذا جدولاً منفصلاً أم عمود JSON فتكون الإجابة عادةً مقبولة، وأحياناً سيئة، ونادراً رائعة — ولا تستطيع التمييز بينها ما لم تطوّر ذائقتك المعمارية الخاصة. القرارات المعمارية لك؛ وقرارات التنفيذ لـClaude.
أليس الاعتراض على الذكاء الاصطناعي يبطئ البناء؟
قليلاً، لكل ميزة — وهي أفضل صفقة ستعقدها. كلّفني الاعتراض على كتلة JSON ساعة إضافية من نقاش التصميم في الأسبوع الثالث. وكان قبولها سيكلف ثلاثة أسابيع من إعادة البناء في الشهر السادس، إضافةً إلى ترحيل ستة أشهر من بيانات العملاء.
إلى أي حد أنت محاصر فعلاً؟
أجرِ مؤشر الاختناق الوظيفي، التقييم المجاني لمعرفة مدى استعدادك لتصبح رائد أعمال منفرداً.