إضافة Claude Code هذه توفر 94% من كتابة الأكواد (ponytail)
BBetter Stack
Computing/SoftwareSmall Business/StartupsManagement
Transcript
00:00:00أنت تعرفه. ذيل حصان طويل، نظارات بيضاوية، يعمل في الشركة منذ فترة أطول من نظام التحكم في الإصدار.
00:00:06تُريه 50 سطراً من الكود، ينظر إليها، لا يقول شيئاً، ثم يستبدلها بسطر واحد.
00:00:11هذا هو الوصف الملحمي لهذه المكتبة الجديدة التي تُدعى “بوني تيل” (Ponytail)، والتي أعتقد أنها نوعاً ما
00:00:17واقعية. جميعنا نعرف ذلك المطور فائق الإنتاجية الذي ينطبق عليه هذا الوصف تماماً. لكن “بوني تيل”
00:00:23هي في الواقع أداة رائعة حقاً. فهي تجعل وكيل البرمجة المدعوم بالذكاء الاصطناعي يفكر مثل المطور الأول الأكثر كسلاً
00:00:29في الغرفة. وهذا في الواقع يعتبر إطراءً. لذا في هذا الفيديو، سنلقي نظرة على “بوني تيل”،
00:00:35ونرى كيف تعمل، ونجري بعض التجارب الممتعة لمعرفة ما إذا كان هذا الرجل هو الشيء الحقيقي فعلاً.
00:00:41سيكون الأمر ممتعاً للغاية، لذا دعونا نغوص فيه.
00:00:48إذن مهمة “بوني تيل” بسيطة. الحفاظ على كل شيء موجزاً للغاية، والقضاء على التضخم الذي تنتجه وكلاء الذكاء الاصطناعي عادةً
00:00:55ومحاولة التوصل إلى أكثر الحلول رشاقةً للمشكلة التي يمكن العثور عليها.
00:01:00إنها تشبه إلى حد ما “كيفمان” (Caveman)، وهي المكتبة التي جعلت وكلاء البرمجة بالذكاء الاصطناعي يتحدثون أقل،
00:01:06وبالتالي ينفقون عدداً أقل من الرموز (Tokens)، وهو ما قام جيمس أيضاً بعمل فيديو رائع عنه هنا. لذا فإن الفكرة الرئيسية
00:01:12التي تكمن وراءها هي تبني مبدأ “ياجني” (YAGNI)، والذي يرمز إلى “لن تحتاج إليه”. وهي في الواقع
00:01:18فكرة هندسة برمجيات من التسعينيات. والفكرة الجوهرية منها هي لا تبنِ شيئاً حتى
00:01:25تحتاج إليه فعلياً. لا تضف طبقة تجريد، لا تثبت مكتبة، لا تكتب فئة (Class).
00:01:31إذا كان من الممكن حل المشكلة بدونها، فما عليك سوى حلها بدونها. وتدمج “بوني تيل” ذلك مباشرةً
00:01:37في وكيلك من خلال منحه سلم قرارات يجب عليه صعوده قبل كتابة أي شيء. هل يحتاج هذا
00:01:43إلى الوجود على الإطلاق؟ هل يمكن للمكتبة القياسية التعامل معه؟ هل هناك ميزة أصلية في المنصة لذلك؟ هل هناك
00:01:50اعتمادية مثبتة بالفعل تقوم بهذا؟ هل يمكن أن يكون سطر كود واحداً؟ فقط إذا كانت كل إجابة من هذه
00:01:57الإجابات هي “لا”، عندها فقط يكتب كوداً جديداً. وحتى ذلك الحين، فإنه يبقيه في الحد الأدنى المطلوب
00:02:04لإنجاز العمل.
00:02:05وإذا نظرنا إلى بعض أمثلتهم، خاصة مثال مربع حوار (Modal Dialogue)، نحصل على صورة واضحة
00:02:11لهذه المنهجية. الوكيل العادي، عند طلب إضافة مربع حوار لتأكيد الحذف،
00:02:18سيسارع فوراً إلى تثبيت مكتبة “راديكس يو آي” (Radix UI) مثل “رياكت دايالوج” وسيعطيك
00:02:25اعتمادية وبوابة، وتراكب، وجذر، ومشغل، ومغلف للمحتوى، فقط لعرض صندوق به زران.
00:02:34لكن “بوني تيل” تنظر إلى هذا وتقول: مهلاً، المتصفح لديه بالفعل عنصر حوار (dialog). إنه يحصر
00:02:41التركيز تلقائياً. ويغلق عند الضغط على زر الهروب (Escape)، ويقوم بعرض خلفية باستخدام محدد CSS واحد،
00:02:49وهو مدعوم في كل متصفح رئيسي منذ عام 2022. لذا بدلاً من 30 سطراً في حزمة NPM،
00:02:58تحصل على ثمانية أسطر وصفر اعتماديات. وهذا التعليق الصغير الخاص بـ “بوني تيل” هنا
00:03:04يخبرك بالضبط بما تم تخطيه ولماذا فعل ذلك. لذا إذا قررت يوماً ما الترقية
00:03:11إلى إصدار “راديكس” أو شيء أكثر فخامة، فأنت تعرف إلى أين تذهب وأين تم تأجيل الأمر.
00:03:16إذن هي كسولة، لكنها ليست غير مسؤولة. ومن خلال تبني هذا الكسل، تدعي “بوني تيل” أنها قادرة
00:03:22على تقليل التكلفة بنسبة 47 إلى 77%. وهي تقدم بالفعل بعض المقاييس التي تدعم هذا الادعاء. لذا دعونا
00:03:29نلقي نظرة عليها للحظة. لدينا ثلاث طرق هنا: استخدام لا شيء، استخدام “كيفمان”، واستخدام “بوني تيل”.
00:03:36وثلاثة نماذج وخمس مهام يومية. عشر عمليات تشغيل لكل خلية ولكل منها النتيجة المتوسطة. والأهم من ذلك،
00:03:43أنهم يتحققون أيضاً من الصحة. فالكود المكون من سطر واحد والذي يسجل درجات رائعة من حيث عدد الأسطر سيفشل في
00:03:50جانب الصحة. لذا الأمر لا يتعلق فقط بكتابة أشياء أقل، بل يجب أن يعمل الأمر بالفعل. وهناك أيضاً ملاحظة مثيرة للاهتمام
00:03:56تستحق الذكر. التكلفة تعكس عمليات استدعاء أحادية الطلقة (single shot) ترسل المهارة في كل مرة. بعبارة أخرى،
00:04:03يعمل المقياس عن طريق إرسال طلب API جديد لكل اختبار. وفي كل مرة يقوم بذلك، فإنه يتضمن
00:04:10مجموعة قواعد “بوني تيل” الكاملة في المطالبة (Prompt). لذا في المقياس، يتم معاقبة “بوني تيل” على تكلفة
00:04:16تعليماتها الخاصة في كل اختبار. في الحياة الواقعية، تدفع مقابل تلك التعليمات مرة واحدة تقريباً
00:04:22لكل جلسة. وبعد ذلك، يتم تخزينها مؤقتاً (cached). هذا يعني أن رقم 47 إلى 77% الأرخص هو في الواقع
00:04:29أقل مما هو عليه في الحقيقة. في جلسة عمل حقيقية موزعة عبر العديد من المطالبات، تكون ميزة التكلفة أكبر
00:04:36لأن تكلفة حقن المهارة هذه يتم توزيعها عبر المحادثة بأكملها. ومع ذلك، هناك انتقاد
00:04:42مشروع يستحق الذكر. مقالة مدونة نُشرت مؤخراً بواسطة كولين إبرهاردت تشير
00:04:48إلى أنه إذا استبدلت “بوني تيل” بثلاث كلمات بسيطة، “اتبع مبادئ ياجني”، فإن نتائج
00:04:55ذلك تطابقت تقريباً مع درجة قياس “بوني تيل”. وعند التوسع إلى سبع كلمات، “اتبع مبادئ ياجني
00:05:03وحلول السطر الواحد”، فقد تفوقت فعلياً على المقياس. فهل “بوني تيل” سحر أم أنها مجرد مطالبة (Prompt) منظمة جيداً؟
00:05:11حسناً، بصراحة، هذا سؤال عادل. لكنني أزعم أن التغليف هو المنتج. أنت تحصل على القواعد الصحيحة
00:05:18يتم حقنها تلقائياً عبر وكلاء مختلفين باستخدام أوامر، وأدوات تدقيق، ودفتر سجل للعمق في الأعلى. إلى جانب ذلك،
00:05:25تتمتع “بوني تيل” بميزات رائعة أخرى. “اتبع ياجني” في مطالبة النظام الخاصة بك لا تمنحك
00:05:31ميزة تدقيق “بوني تيل” أو ميزة مراجعة “بوني تيل”. ولكن الآن دعونا نختبرها بمثال بسيط.
00:05:37لذا هنا لدي مثيلان (instances) لـ “كلاود كود” مفتوحان وعلى أحدهما، سأقوم بتثبيت إضافة “بوني تيل”
00:05:44للنطاق المحلي فقط. والآخر سيكون مثيل “كلاود كود” بسيط افتراضي بدون
00:05:49تفعيل أي إضافات. سأعطيهما نفس المطالبة لبناء تطبيق لوحة تحكم للطقس يكتشف موقع المستخدم
00:05:56ويظهر ظروف الطقس الحالية جنباً إلى جنب مع بعض الميزات الأخرى. وسأقوم بتشغيل نفس
00:06:02المطالبة على كلا المثيلين، مع الاستثناء الوحيد وهو أنني في مثيل “بوني تيل”، سأطلب
00:06:08أيضاً استخدامه لمهارة “بوني تيل” لأنه في بعض الأحيان لا يلتقطها تلقائياً. لذا بعد بضع
00:06:12لحظات، نرى أن إصدار “بوني تيل” قد أنهى المهمة بالفعل في أقل من دقيقة، بينما لا يزال
00:06:18الإصدار الافتراضي في مرحلة المعالجة. وأيضاً نرى نظرة عامة موجزة جداً عما بناه وما اختارت “بوني تيل”
00:06:25عدم القيام به لتحقيق أقصى قدر من الكفاءة. وكما نرى هنا، اختارت أن يكون كل شيء في ملف HTML واحد.
00:06:34في غضون ذلك، في النافذة الافتراضية، تم الانتهاء من المهمة في دقيقتين و30 ثانية. ويمكننا أن نرى بالفعل أن هذا
00:06:41الإصدار أكثر تضخماً. لدينا ثلاثة ملفات منفصلة وهذا الإصدار يعمل باستخدام خادم بايثون.
00:06:48لذا في حين أن هذه ليست بأي حال من الأحوال نتيجة سيئة، إلا أنها أكثر تعقيداً مما ينبغي مقارنة بالإصدار الأول.
00:06:54لكن دعونا ننظر فعلياً كيف يعملان. لذا أولاً، هذا هو الإصدار بدون “بوني تيل”.
00:07:00وبينما يبدو التطبيق رائعاً وواجهة المستخدم جميلة وواجهة برمجة التطبيقات تسترجع المعلومات كما هو متوقع،
00:07:07أنا محبط للغاية لأنه لم يلتقط موقعي تلقائياً كما طلبت.
00:07:12وبدلاً من ذلك يظهر لي لندن كأول نتيجة افتراضية. ولكن الآن إذا انتقلنا إلى إصدار “بوني تيل”،
00:07:19هنا يمكننا أن نرى بوضوح أنه عند فتحه، فإنه يطلب الحصول على موقعي الحالي ثم يخرج الطقس
00:07:25المطابق لذلك الموقع بدلاً من ذلك. لذا بينما قد لا تكون واجهة المستخدم فاخرة والتطبيق قد يكون أكثر بساطة،
00:07:33إلا أنه اتبع التعليمات بدقة أكبر من الإصدار الافتراضي، وهو أمر مفاجئ جداً، لأكون صادقاً.
00:07:39وأخيراً، دعونا ننظر إلى الاستخدام. وهنا يمكننا أن نرى نعم، في الواقع، إصدار “بوني تيل”
00:07:45انتهى به المطاف ليكون أرخص بنسبة 50% من الإصدار الافتراضي. وأنتج أيضاً عدداً أقل بكثير من أسطر الكود.
00:07:52وكما رأينا للتو، كان حتى أفضل من حيث الوظيفية من الإصدار الافتراضي.
00:07:58لذا هذا يثبت أن “بوني تيل” تعمل بالفعل كما هو متوقع، وهي تنتج كوداً أكثر رشاقة.
00:08:04لذا بما أن هذا الاختبار كان ناجحاً للغاية، قررت القيام بشيء أكثر إثارة للاهتمام.
00:08:09ماذا لو قمت بدمج “كيفمان” و “بوني تيل” معاً لتحقيق أقصى قدر من الكفاءة؟ ماذا سيعطينا ذلك؟
00:08:17لذا هذه المرة قمت بتفعيل كلتا الإضافتين في دليل جديد وقمت بتشغيل نفس المطالبة مرة أخرى.
00:08:22ومرة أخرى، تم الانتهاء من المهمة في أقل من دقيقة وكانت المخرجات متشابهة إلى حد ما.
00:08:28وكان لدي كل نفس الوظائف. لذا فقد عمل كما هو متوقع.
00:08:32ولكن إذا نظرنا إلى المخرجات، فهي لم تختلف كثيراً عن إصدار “بوني تيل” وكان الجمع بين “كيفمان”
00:08:37و “بوني تيل” انتهى به المطاف ليكون أكثر تكلفة بقليل من إصدار “بوني تيل” المستقل.
00:08:44لذا يظهر هذا أن الجمع بينهما لا يعطيك أي تحسن كبير فعلياً.
00:08:49لذا يمكنك الالتزام باستخدام “كيفمان” فقط أو الأفضل من ذلك، اختر استخدام “بوني تيل”.
00:08:54إذا كان بإمكاننا تصديق مقاييسهم بأنها بالفعل أفضل من “كيفمان”.
00:08:58إذن إليكم الأمر يا رفاق. هذه هي “بوني تيل” باختصار.
00:09:02أنا حقاً معجب بصدق بالمخرجات الإيجابية التي تمكن “كلاود” من إنتاجها
00:09:07باستخدام مهارة “بوني تيل” مع تقليل التضخم والحفاظ على الجودة في نفس الوقت.
00:09:13أعتقد أن هذا يوضح فقط أن الكثير من حلول البرمجة لدينا ربما تكون أكثر تعقيداً مما ينبغي
00:09:19وأحياناً الأقل هو في الواقع أكثر إذا استخدمته بالطريقة الصحيحة.
00:09:23لذا سأحتفظ بالتأكيد بـ “بوني تيل” كإضافة في إعداد “كلاود كود” الخاص بي
00:09:29وربما أستخدمها في المشاريع المستقبلية.
00:09:31ولكن ما رأيك في “بوني تيل”؟ هل جربتها؟
00:09:34هل ستستخدمها؟ أخبرنا في قسم التعليقات بالأسفل.
00:09:37ويا رفاق، إذا أعجبتكم هذه الأنواع من التحليلات التقنية،
00:09:40يرجى إعلامي بذلك عن طريق تحطيم زر الإعجاب الموجود أسفل الفيديو.
00:09:44وأيضاً لا تنسوا الاشتراك في قناتنا.
00:09:47كان معكم أندروس من “بيتر ستاك” (BetterStack) وسأراكم في الفيديوهات القادمة.