Hacker News

لقد طلبت من Claude Code إزالة jQuery. لقد فشلت فشلا ذريعا

لقد طلبت من Claude Code إزالة jQuery. لقد فشلت فشلا ذريعا يتعمق هذا الاستكشاف في الأسئلة ويفحص أهميتها وقوتها - Mewayz Business OS.

1 دقيقة قراءة

Mewayz Team

Editorial Team

Hacker News

لقد طلبت من كلود كود إزالة jQuery. لقد فشل فشلا ذريعا

تبدو إزالة jQuery من قاعدة التعليمات البرمجية القديمة أمرًا بسيطًا على الورق - فهي في الواقع واحدة من أكثر عمليات إعادة البناء الخادعة التي يمكن للمطور تجربتها. لقد سلمت المهمة إلى Claude Code، وهو مساعد ترميز الذكاء الاصطناعي، متوقعًا انتقالًا نظيفًا إلى Vanilla JavaScript، وما تلا ذلك كان سلسلة من معالجات الأحداث المعطلة، وتجريدات AJAX المفقودة، وتبعيات المكونات الإضافية المتداخلة التي أدت إلى ركوع المشروع.

لماذا تبدو إزالة jQuery فكرة جيدة؟

كان العرض مقنعًا: فقد أغلقت المتصفحات الحديثة فجوة التوافق التي جعلت jQuery ضروريًا في عام 2009. وتتعامل Vanilla JavaScript الآن مع معالجة DOM وطلبات الجلب وتفويض الأحداث محليًا. تؤدي إزالة jQuery إلى تقليل 87 كيلو بايت من الحزمة (مصغرة + مضغوطة بصيغة gzipped)، وتحسين نتائج Lighthouse، وإزالة التبعية التي تحظى باهتمام صيانة متناقص.

كانت قاعدة التعليمات البرمجية الخاصة بنا عبارة عن لوحة معلومات SaaS متوسطة الحجم تحتوي على ما يقرب من 140.000 سطر من JavaScript، تم تجميعها على مدار ست سنوات. كان jQuery موجودًا في كل مكان - ليس فقط في الوظائف المساعدة، ولكن تم دمجه في المكونات الإضافية التابعة لجهات خارجية، والتحقق من صحة النماذج القديمة، وحتى بعض أجزاء القالب المقدمة من الخادم. كانت مساحة سطح إعادة التصنيع هائلة، وافترضت بسذاجة أن أداة الذكاء الاصطناعي ستأكلها على الإفطار.

ما الذي حدث بالفعل عندما حاول كلود كود القيام بذلك؟

التمريرة الأولى كانت مشجعة. حدد Claude Code بشكل صحيح مكالمات $(document).ready()‎ واستبدلها بمستمعي DOMContentLoaded. يتم تحويل مكالمات $.ajax() البسيطة بشكل واضح إلى fetch(). بالنسبة للفاكهة المتدلية، كان أداء الذكاء الاصطناعي مثيرًا للإعجاب.

ثم جاءت الإضافات. تعتمد قاعدة التعليمات البرمجية الخاصة بنا على Select2 وDataTables ومنتقي النطاق الزمني المخصص - وكلها تعتمد على jQuery. اقترح كلود كود استبدالها ببدائل حديثة، وهي نصيحة صحيحة بمعزل عن غيرها، لكنها لم تأخذ في الاعتبار التأثيرات المتتالية. يؤدي تبديل Select2 لـ Choices.js إلى تغيير واجهة برمجة تطبيقات التهيئة وأسماء الأحداث وعقد ربط البيانات. استبدل كلود كود عملية الاستيراد واستمر في العمل، تاركًا المراجع المقطوعة عبر 23 مكونًا دون تغيير.

والأسوأ من ذلك هو أن الذكاء الاصطناعي واجه صعوبات في استخدام jQuery غير المباشر، وهي الأماكن التي تمت فيها كتابة Vanilla JS تقنيًا ولكنها كانت تمرر النتائج من خلال وظائف jQuery المساعدة مثل $.extend() أو $.isPlainObject(). لقد فاتتها هذه الأمور تمامًا أثناء تمرير التحليل.

"تتفوق أدوات ترميز الذكاء الاصطناعي في استبدال الأنماط. فهي تواجه صعوبة في رسم خرائط التبعية النظامية - ليس فقط فهم مكان استدعاء المكتبة، ولكن أيضًا العقود التي تفرضها ضمنيًا عبر قاعدة التعليمات البرمجية."

💡 هل تعلم؟

Mewayz تحل محل 8+ أدوات أعمال في منصة واحدة

CRM · الفواتير · الموارد البشرية · المشاريع · الحجوزات · التجارة الإلكترونية · نقطة البيع · التحليلات. خطة مجانية للأبد متاحة.

ابدأ مجانًا →

ما هي التحديات الحقيقية للانتقال من jQuery إلى Vanilla؟

وكشف الفشل عن مشاكل هيكلية لا يمكن لأي أداة واحدة - الإنسان أو الذكاء الاصطناعي - أن تتجنبها دون الاستعداد المناسب:

عقود المكونات الإضافية المخفية: تعتمد مكونات jQuery الإضافية على نظام الأحداث الداخلي لـ jQuery (امتدادات .fn، الأحداث المفوضة). يؤدي تبديل المكتبة المضيفة إلى إبطال جميع المكونات الإضافية في وقت واحد، وليس بشكل متزايد.

خطأ AJAX في معالجة الاختلافات: يلتف $.ajax() الخاص بـ jQuery الأخطاء في كائن تمت تسويته. تتسبب واجهة Fetch API في حدوث فشل في الشبكة ولكن يتم حلها من خلال استجابات 4xx/5xx - وهو انعكاس سلوكي يكسر كل معالج أخطاء موجود.

تجريدات الرسوم المتحركة: $.animate() و .fadeIn() و .slideUp() ليس لها مرادفات مباشرة للفانيليا؛ تتطلب انتقالات CSS تغييرات في العلامات الهيكلية، وليس فقط مبادلات JavaScript.

اختلافات محرك المحدد: يدعم محرك Sizzle الخاص بـ jQuery المحددات الزائفة مثل :visible و :has() التي لا يتعامل معها querySelectorAll() أصلاً.

افتراضات الحالة العالمية: غالبًا ما تقوم التعليمات البرمجية القديمة بتغيير كائن jQuery أو تعتمد على ترتيب المكونات الإضافية - وهي افتراضات غير مرئية للتحليل الثابت.

حدد كلود كود ما يقرب من 60% من التغييرات المطلوبة بشكل صحيح. وتتطلب نسبة الـ 40% المتبقية وجود مطور بشري يفهم العقود السلوكية، وليس فقط بناء الجملة.

كيف ينبغي للمطورين أن يتعاملوا فعليًا مع هذه الهجرة؟

فالاستراتيجية الصحيحة هي استراتيجية تدريجية وقائمة على الحدود، وليست بالجملة. بدلاً من نسخ jQuery

Streamline Your Business with Mewayz

Mewayz brings 207 business modules into one platform — CRM, invoicing, project management, and more. Join 138,000+ users who simplified their workflow.

Start Free Today →

جرب Mewayz مجانًا

منصة شاملة لإدارة العلاقات والعملاء، والفواتير، والمشاريع، والموارد البشرية، والمزيد. لا حاجة لبطاقة ائتمان.

ابدأ في إدارة عملك بشكل أكثر ذكاءً اليوم.

انضم إلى 30,000+ شركة. خطة مجانية للأبد · لا حاجة لبطاقة ائتمان.

وجدت هذا مفيدا؟ أنشرها.

هل أنت مستعد لوضع هذا موضع التنفيذ؟

انضم إلى 30,000+ شركة تستخدم ميويز. خطة مجانية دائمًا — لا حاجة لبطاقة ائتمان.

ابدأ التجربة المجانية →

هل أنت مستعد لاتخاذ إجراء؟

ابدأ تجربة Mewayz المجانية اليوم

منصة أعمال شاملة. لا حاجة لبطاقة ائتمان.

ابدأ مجانًا →

تجربة مجانية 14 يومًا · لا توجد بطاقة ائتمان · إلغاء في أي وقت