نمتلك جميعاً تلك المشاريع الشخصية التي بدأناها بحماس شديد، ثم تركناها لتغبر في مجلدات حواسيبنا بسبب انشغالنا بضغوط الحياة. اليابانيون لديهم كلمة رائعة تُدعى “تسونداكو” (Tsundoku)، وهي تصف كومة الكتب التي تشتريها بنية قراءتها يوماً ما، لكنها تتراكم دون أن تُفتح. حسناً، كمبرمجين ومحبين للتقنية، لدينا “تسونداكو” خاص بنا من الأكواد غير المكتملة. هذه المشاريع المهجورة هي المرشح المثالي لاختبار قدرات أدوات المساعدة البرمجية المعتمدة على الذكاء الاصطناعي، ففي النهاية، لم نكن لنكملها أبداً لولا هذه الأدوات المساعدة.

الفكرة والتجهيز للمهمة
في الماضي، بدأت مشروعاً عبارة عن طبقة وسيطة (Shim) تربط بين خدمة “يوتيوب ميوزيك” وواجهة برمجة تطبيقات “OpenSubsonic”. باختصار، OpenSubsonic هو عقد برمجي رائع يفصل بين خوادم بث الموسيقى والتطبيقات التي تشغلها، مما يتيح لك اختيار المزيج الذي يعجبك. بالنسبة لي، أفضل استخدام Navidrome كخادم، وتطبيق Feishin على الحواسيب، و Symfonium على نظام أندرويد. كانت الفكرة هي جعل يوتيوب ميوزيك يتوافق مع واجهة برمجة التطبيقات هذه، بحيث أتمكن من إضافته إلى أي من تطبيقاتي المفضلة. وعلى الرغم من أن الحصول على البث الأساسي كان سهلاً باستخدام ytmusicapi و yt-dlp، إلا أن تنفيذ جميع الوظائف المطلوبة كان مرهقاً، وكالعادة، سرقت مشاريع جديدة انتباهي.

لحسن الحظ، لم يكن هناك شيء مبتكر بشكل معقد في مشروع البث هذا، وكانت هناك مواصفات واضحة لاتباعها، مما يجعله مثالياً لتجربة البرمجة بمساعدة الذكاء الاصطناعي. قررت اختبار Claude Code (نموذج Opus 4.6) مستفيداً من رصيد مجاني قدره 50 دولاراً، لإنشاء المشروع من الصفر. قمت بإعداد بيئة العمل باستخدام FastAPI و Pydantic، ووفرت لـ Claude ملف مواصفات OpenAPI الخاص بـ OpenSubsonic، بالإضافة إلى ملف CLAUDE.md يحتوي على إرشادات صارمة، مثل استخدام أحدث تقنيات Pydantic وكتابة اختبارات Unit Tests احترافية، لمنعه من تكرار الأخطاء الشائعة.
بناء النسخة الأولية (MVP)
مع إعداد كل شيء، تركت Claude يتولى القيادة. كانت آلية العمل تتلخص في الدخول في وضع التخطيط، وطلب إنجاز الجزء التالي، ومراجعة الخطة وتصحيحها، ثم منحه الموارد اللازمة للبحث عندما يواجه عقبات. كان طلبي الأول مباشراً: “ألقِ نظرة على ملف openapi.json. نفذ خادماً باستخدام fastapi يضع هياكل (Stubs) لجميع الدوال المطلوبة، مع التركيز فقط على مسارات JSON الحديثة”.

حتى مع وجود مواصفات واضحة، ارتكب Claude بعض الأخطاء في البداية، لكنه تمكن من تصحيحها في المحاولة الثانية. الخطوة الكبيرة التالية كانت طلب توصيل التطبيق، والبحث عن أغنية، وبثها. حصلت سريعاً على تنفيذ منطقي، لكنه تعثر عند محاولة الاتصال الفعلي بتطبيق Feishin. هنا جاء دور التكرار والتعديل؛ قمت بتشغيل التطبيق وتمرير سجلات الأخطاء إلى Claude Code. المذهل أنه بعد تكرارات قليلة، كنت أستمع بالفعل للموسيقى تتدفق عبر Feishin! كانت العقبات الرئيسية تتمثل في ضرورة إرجاع استجابات فارغة ولكن مهيكلة بشكل صحيح بدلاً من عدم إرجاع أي شيء على الإطلاق.
اللمسات النهائية والمهام المرهقة
الحصول على النسخة الأولية كان الجزء السهل، لكن التحدي الحقيقي كان في التعامل مع المهام المملة والمرهقة (The Long Tail) لجعل المشروع قابلاً للاستخدام الفعلي. واجهة OpenSubsonic تحتوي على حوالي 80 مساراً مقسمة على 15 فئة. لكي أجعل خادمي يعمل بكامل طاقته، طلبت من الذكاء الاصطناعي تنفيذ ذاكرة تخزين مؤقت (Caching) بسيطة لتجنب تجاوز حدود استخدام واجهة يوتيوب البرمجية، واستخدام قواعد بيانات SQLite لتخزين البيانات الوصفية للموسيقى.

كما تضمن العمل حفظ الأغاني على القرص أثناء بثها لتجنب إعادة التنزيل مراراً وتكراراً، مع إضافة كود خاص لتنظيف الملفات غير المكتملة إذا انقطع الاتصال قبل انتهاء التحميل. هذه كلها أشياء كنت أعرف أنه يجب القيام بها لجعل مشروعي القديم مفيداً، لكنني لم أقم بها قط استثقالاً لها. في غضون مساء قصير، تمكنت بفضل الذكاء الاصطناعي من الحصول على خدمة تعمل بشكل ممتاز، وأطلقت عليها مازحاً اسم “Sub-standard”.
هل هذا النهج صحي للمبرمجين؟
لا أريد أن أبدو وكأنني مروج متحمس للبرمجة بالذكاء الاصطناعي بشكل أعمى. لا تزال لدي مخاوف من فقدان المهارات البرمجية نتيجة الاعتماد المفرط على هذه الأدوات. لهذا السبب لا أزال أصر على محاولة تعلم لغة معقدة مثل Rust بجهدي الشخصي. يجب أن نصنف مشاريعنا الشخصية في وعاءين: الأول هو “أشياء أقوم بها لأتعلم وأطور مهاراتي”، والثاني هو “أشياء أتمنى حقاً أن تكون موجودة ومتاحة لي”.

هذا المشروع يقع بوضوح في الوعاء الثاني. استخدام الذكاء الاصطناعي لتحقيق هذه المشاريع هو شكل من أشكال تلبية الرغبات. لم أكن لأكمله بجهدي أبداً، ولكن الآن، أمتلك مشروعاً جاهزاً يعمل بكفاءة، وكتاباً مجازياً واحداً تمت قراءته بدلاً من تركه ليجمع الغبار على الرف. الأمر المهم في النهاية ليس إنجازك للمشاريع التي تتمناها باستخدام الذكاء الاصطناعي، بل ضمان أنك لا تزال تستثمر وقتك في مشاريع الوعاء الأول لتطوير مهاراتك الذاتية.
المصدر:



اترك رد