عميل البرمجة بالذكاء الاصطناعي الخاص بي كان يتعطل باستمرار — ما الذي قمت بتغييره
قبل ستة أسابيع، كان عميل البرمجة بالذكاء الاصطناعي الخاص بي ينتج نتائج عديمة الفائدة.
كان يكتب دوالاً (functions) تُجمع (compile) ولكنها لا تفعل شيئاً. كان يجتاز الاختبارات لأسباب خاطئة. كان يصلح خطأً واحداً ولكنه يتسبب في ثلاثة أخطاء جديدة.
اعتقدت أن العميل هو المشكلة. كنت مخطئاً. المشكلة كانت تكمن في افتقاري للانضباط.
أستخدم عميل ذكاء اصطناعي في 40% من عملي الهندسي. هو يتولى عمليات إعادة الهيكلة (refactors)، وتوليد الاختبارات، والتحقيق في الأخطاء. عندما كانت قاعدة الكود (codebase) الخاصة بي فوضوية، جعل الذكاء الاصطناعي تلك الفوضى أسوأ بثلاث مرات.
الذكاء الاصطناعي لا يحل محل الانضباط. بل يضخم ما تملكه بالفعل.
إليك كيف قمت بتغيير سير عملي لإصلاح النتائج:
يجب أن تؤكد الاختبارات السلوك، وليس الحالة. توقف عن كتابة اختبارات مثل
assert user is not None. هذا ليس اختباراً حقيقياً. يجب أن يتحقق الاختبار من بيانات محددة مثلassert user.email == expected_email. إذا كان الاختبار ضعيفاً، فسيستغله الذكاء الاصطناعي.اقرأ كل diff بدقة. كنت أقبل عمليات إعادة الهيكلة دون النظر إلى الكود. أدى ذلك إلى تبعيات دائرية (circular dependencies) وبنية برمجية فوضوية. إذا لم تتمكن من شرح سبب كون التغيير أفضل، فارفضه.
اجعل الحالة (state) صريحة. لا تترك الذكاء الاصطناعي "يستنتج" كيفية التعامل مع التخزين المؤقت (caches) أو الجلسات (sessions). حدد هذه الأمور في مطالباتك (prompts) أو مخططاتك (schemas). الحالة المستنتجة تؤدي إلى أخطاء صامتة تتسبب في تعطل بيئة الإنتاج (production).
اكتب اختباراتك الخاصة لتغييرات العميل. في كل مرة يغير فيها العميل الكود، أكتب اختباراً من تأليفي البشري أولاً. هذا يستغرق 15 دقيقة ولكنه يوفر ساعات من تصحيح الأخطاء (debugging).
طالب بفشل واضح وصريح. إذا اجتاز تغيير ما الاختبارات ولكنه كسر المنطق البرمجي، يجب على النظام التنبيه لذلك. لا تقبل أبداً عبارة "الاختبارات ناجحة، أرسل الكود" كمعيار صالح.
النتائج:
- انخفض عدد الأخطاء أسبوعياً من 5 إلى أقل من 1.
- انخفض وقت تصحيح الأخطاء من 6 ساعات إلى ساعة واحدة أسبوعياً.
العميل لم يتغير. أنا من تغيرت.
إذا كنت تستخدم عملاء الذكاء الاصطناعي، فأصلح قاعدة الكود الخاصة بك أولاً. حسن اختباراتك، ووضح حالتك، وشدد مراجعاتك.
العميل هو مرآة. تأكد من أن لديك شيئاً يستحق التضخيم.
Source: https://dev.to/susiloharjo/my-ai-coding-agent-kept-breaking-what-i-changed-4l5f
Optional learning community: https://t.me/GyaanSetuAi
