إضافة Claude Code هذه توفر 94% من كتابة الأكواد (ponytail)

BBetter Stack
컴퓨터/소프트웨어창업/스타트업경영/리더십

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) وسأراكم في الفيديوهات القادمة.

Key Takeaway

تسمح إضافة “بوني تيل” لوكلاء البرمجة بالذكاء الاصطناعي بإنتاج كود أكثر رشاقةً وبساطةً عبر تطبيق مبدأ “ياجني”، مما يقلل التكاليف بما يصل إلى 77% مع تعزيز كفاءة التنفيذ.

Highlights

  • تقلل إضافة “بوني تيل” (Ponytail) تكاليف تشغيل وكلاء البرمجة بالذكاء الاصطناعي بنسبة تتراوح بين 47% و77%.

  • تعتمد “بوني تيل” على مبدأ هندسة البرمجيات “ياجني” (YAGNI) الذي يمنع إضافة أي مكتبات أو طبقات تجريد غير ضرورية.

  • يفرض هذا الملحق سلم قرارات صارمًا على الوكيل يمنعه من كتابة كود جديد إذا أمكن حل المشكلة باستخدام ميزات المتصفح الأصلية أو المكتبات الموجودة بالفعل.

  • أدى استخدام “بوني تيل” في اختبار عملي لتطبيق لوحة تحكم للطقس إلى تقليل الأسطر البرمجية والاعتماديات مقارنةً بالوكيل الافتراضي.

  • تفوق تطبيق “بوني تيل” في دقة تنفيذ المهام، مثل طلب الموقع الحالي للمستخدم، على الإصدار الافتراضي الذي فشل في تحقيق ذلك.

  • كشفت تجارب دمج “بوني تيل” مع مكتبة “كيفمان” أن الجمع بينهما لا يوفر تحسينات إضافية في الأداء أو التكلفة مقارنة باستخدام “بوني تيل” وحدها.

Timeline

مفهوم بوني تيل ومبدأ ياجني

  • تهدف “بوني تيل” إلى تقليل التضخم البرمجي وإنتاج حلول برمجية بسيطة ومباشرة.
  • تطبق الأداة مبدأ “لن تحتاج إليه” (YAGNI) لمنع الإضافات البرمجية غير الضرورية.
  • يتبع الوكيل سلم قرارات فني للتحقق من ضرورة أي كود جديد قبل كتابته.

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

تطبيق منهجي على واجهات المستخدم

  • تستبدل الأداة مكتبات الواجهات المعقدة بعناصر HTML الأصلية مثل عنصر الحوار (dialog).
  • يوفر استخدام عناصر المتصفح الأصلية كودًا خاليًا من الاعتماديات (zero dependencies).
  • تترك الأداة تعليقات توضيحية تشرح أسباب استبعاد المكتبات الخارجية.

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

المقاييس والأداء الفعلي

  • تدعي الأداة تقليل التكلفة بنسبة 47% إلى 77% بناءً على تجارب قياس متنوعة.
  • تتأثر التكلفة في الاختبارات باحتساب إدراج تعليمات الأداة ضمن كل طلب برمجي.
  • أشار تحليل مستقل إلى أن صياغة مطالبة (Prompt) جيدة تتبع مبدأ ياجني قد تعطي نتائج مشابهة للأداة.

تعتمد تقديرات التكلفة على عمليات استدعاء أحادية الطلقة، حيث يتم إرسال قواعد “بوني تيل” في كل طلب. في جلسات العمل الحقيقية، تكون الميزة أكبر لأن القواعد تُخزن مؤقتًا بعد الطلب الأول. ومع ذلك، هناك نقاش حول ما إذا كانت الأداة تقدم ميزة جوهرية تفوق مجرد استخدام تعليمات منظمة جيدًا في مطالبة النظام.

الاختبار العملي للمقارنة

  • تفوق إصدار “بوني تيل” في سرعة التنفيذ ودقة الوظائف عند بناء لوحة تحكم للطقس.
  • نجح الإصدار المطور بـ “بوني تيل” في اكتشاف موقع المستخدم تلقائيًا بعكس الوكيل الافتراضي.
  • فشل دمج “كيفمان” مع “بوني تيل” في إظهار أي تحسين إضافي في النتائج أو التكلفة.

في تجربة بناء تطبيق طقس، أنهى وكيل “بوني تيل” المهمة في أقل من دقيقة مقارنة بـ دقيقتين ونصف للوكيل الافتراضي. بالإضافة إلى السرعة، كان التطبيق الناتج أكثر وظيفية وتركيزًا. الاختبارات الإضافية لدمج مكتبات متعددة لم تسفر عن نتائج أفضل، مما يرجح تفضيل “بوني تيل” وحدها.

Community Posts

View all posts