Pocock vs Pstack vs Osmani: Which Skill Pack Wins?
650 segments
لذا، آدي عثماني، هو
على الأرجح أحد أكثر
المهندسين احتراماً
في جوجل لأكثر من عقد
من الزمان، وقد انتقل
مؤخراً إلى شركة Anthropic
، مطورة Claude Code. وقد
قام للتو بجعل جميع
مهارات الوكيل الخاصة
به مفتوحة المصدر.
وبعد 100 ألف نجمة،
أصبحت على الأرجح
واحدة من أكثر
مستودعات الذكاء
الاصطناعي شعبية على
GitHub في الوقت الحالي.
لذا، إذا كنت تتابع
القناة، ستعرف أنني
قمت بالفعل بتحليل P
Stack من لورين تان في
Cursor، وكذلك مهارات مات
بوكوك. إذن، آدي هو
الثالث من بين الثلاثة
الكبار. الآن وقد أصبح
لدينا الثلاثة، يمكنك
أن ترى أنهم يحلون
مشكلات مختلفة. بحلول
نهاية هذا الفيديو،
ستعرف ما يفعله آدي،
ومتى تستخدم كل حزمة،
ولماذا أعتقد أنك لست
بحاجة لتشغيل كل هذه
على جميع مشاريعك.
يمكن أن تكون مبالغاً
فيها بعض الشيء في بعض
الأحيان. أنا روب،
وهذه قناة Switch to Mention،
ولنبدأ بكيفية تفكير
آدي في مجموعة مهاراته
. سياق سريع، إذا كنت
لا تعرف من هو آدي، فهو
أسطورة في عالم جافا
سكريبت. لقد كتب كتاب "
تعلم أنماط تصميم جافا
سكريبت". وقد قاد تجربة
مطوري كروم وأعمال
أداء الويب في جوجل.
إذا سبق لك استخدام
Lighthouse أو قرأت عن Core Web
Vitals، فمن المحتمل أنك
تأثرت بعمله في مرحلة
ما. لذا، أعتقد أن هذا
مهم حقاً لأنه عندما
يكتب شخص مثل آدي، "هذه
هي الطريقة التي تريد
بها من الوكيل هندسة
البرمجيات"، فأنت تريد
الانتباه. ما تحصل
عليه حقاً هو عقل
مهندس متمرس مضغوط في
صيغة ماركداون. وهذا
ما أحبه في المهارات.
سابقاً كنا نقرأ
الكثير من كتب O'Reilly
حول أفضل الممارسات،
أما الآن فنحن ندرس
ونفحص المهارات من
كبار المطورين. إذن،
إليكم الفكرة الكبرى.
نهج آدي هو دورة حياة،
ست مراحل: التحديد،
التخطيط، البناء،
التحقق، المراجعة،
والشحن. وكل مرحلة لها
أمر شرطة مائل خاص بها.
إذا كنت تشاهد
فيديوهاتي منذ عامين،
أو قمت بأي نوع من
التطوير القائم على
المواصفات مع B Mad أو
Superpowers، فسيبدو هذا
مألوفاً جداً. وهذا هو
جوهر الأمر. مهارات
مات لها مفرداتها
الخاصة، مثل "grilling" و "
wayfinder" و "fog of war". و P Stack
لديه "potato mode" و "arenas".
نهج آدي هو الأكثر
تقليدية في دورة حياة
تطوير البرمجيات. ليس
عليك تعلم استعارة،
إنها دورة حياة تطوير
البرمجيات التي يتم
تنفيذها بشكل صحيح مع
وكيل. لذا، أعتقد من
بين كل هذه الحزم أنها
يمكن أن تتناسب بشكل
جيد جداً مع فريق
تطوير حالي أو في
المؤسسات. إذن، تقوم
spec بكتابة وثيقة
متطلبات منتج (PRD)
مناسبة تغطي الأهداف،
والهيكل، ونمط الكود،
والاختبار، والحدود
قبل كتابة أي سطر
برمجى. تقوم Plan بتفكيك
ذلك إلى مهام صغيرة
ذرية مع معايير قبول،
وتقوم build بتنفيذ
شريحة رأسية رفيعة
واحدة في كل مرة. أنت
تقوم بتنفيذها،
واختبارها، والتحقق
منها، والالتزام بها،
ثم تقوم بمراجعة
الاختبار وشحنها. إذن،
هناك وضع واحد يعجبني
حقًا، وهو يسمى/build auto.
لذا، أنت توافق على
الخطة مرة واحدة، ثم
تقوم بتشغيل كل مهمة
بشكل مستقل بعد ذلك.
إنه يغنيك عن التدخل
بين المهام، لكنه لا
يلغي التحقق، وهو أمر
مهم بالنسبة لك لتطلع
عليه. لذا، لا تزال كل
مهمة تعتمد على
الاختبار، ويتم
الالتزام بها بمفردها
، ثم تتوقف إذا فشل شيء
ما. إذن، أعتقد أن هذه
هي الطريقة الصحيحة
للقيام بالاستقلالية.
إذن، /constraints هي في
الأساس أسلوب آخر
للمقابلة فقط لاختبار
مستوى الجودة أو معيار
الجودة الخاص بك، ثم
يكتب هذا في perf لأداء
الويب. إنه يقوم
بتدقيق الأداء، والذي
تعلم، بالنظر إلى من
كتب هذا، آدي عثماني،
ملك أداء الويب، فأنت
تأمل أن يكون هذا
جيدًا. ثم، /code simplify
مخصص للحالات التي
يعمل فيها الكود، لكن
لا أحد يريد لمسه حقًا
، وتريد تبسيطه أو
تفكيكه. هناك الكثير
من التداخل بين ما
تتحدث عنه لورين وما
يتحدث عنه مات بوكوك
فيما يتعلق بالمهارات
المماثلة. إذن، هناك 25
مهارة في المجموع
بالإضافة إلى أربع
شخصيات مراجعة. هناك
مهندس موظف، ومهندس
اختبار، ومدقق أمان،
ومدقق أداء ويب. حسنًا
، دعنا ننظر داخل
المهارات. كما هو
الحال دائمًا في هذه
القناة، أوامر الشرطة
المائلة ليست الجزء
المثير للاهتمام.
ملفات المهارات هي
الجزء المثير. هنا حيث
نغوص حقًا داخل عقل
مهندس البرمجيات. إذن،
كل مهارة لديها ما
يسميه آدي جدول مكافحة
الترشيد. إنها قائمة
بالأعذار التي
سيقدمها الوكيل لتخطي
خطوة ما. نرى الوكلاء
يفعلون هذا طوال الوقت
. وبعد ذلك لديك الرد
على سبب تخطيه بجانبه
مباشرة. لذا، سيختبر
أشياء مثل تتبع
الاستدلال مثل هذا
بسيط للغاية بحيث لا
يمكن اختباره أو لقد
اختبرته يدويًا. لذا،
إذا كنت قد عملت مع
وكلاء أو عملت مع
مبتدئين، فقد سمعت كل
هذه الأعذار من قبل.
وكتابة الأعذار
مسبقًا هي خطوة ذكية
حقًا. إليك نصيحة
سريعة حول العمل مع
وكلاء متعددين، بفضل
أصدقائنا في Neon. عندما
تقوم بتطوير كود جديد
باستخدام الوكلاء،
سترغب في الحصول على
فروع ميزات مختلفة
ومتعددة لتضمن عدم
التأثير على فرع
الإنتاج الرئيسي. لسوء
الحظ، يصبح الأمر أكثر
تعقيداً من ذلك بقليل.
لدينا الفرع الرئيسي،
ولكننا نحتاج أيضاً
إلى فرع لقاعدة
البيانات وربما بعض
مساحات التخزين. خلاف
ذلك، كل ما ستحصل عليه
هو فرع معاينة. قد
يحتوي على نسخة من
Postgres وهذا جيد، لكنه
قد ينتهي به الأمر
برفع الملف إلى وحدة
تخزين خاطئة. وينتهي
بنا المطاف بحدوث عطل
في بيئة الإنتاج. لقد
كنت أستخدم Neon لسنوات
لاحتياجات قاعدة
بياناتي فقط بسبب
ميزات التفرع
المتفوقة لديهم
وأسباب أخرى كثيرة.
لكن ما قد لا تلاحظه هو
أنهم أصبحوا الآن منصة
متكاملة، توفر قاعدة
بيانات، وتخزين،
ودوال برمجية،
ومصادقة، وبوابة
للذكاء الاصطناعي. قد
تسأل، لماذا يعتبر هذا
أمراً رائعاً؟ حسناً،
يمكن لوكيلك الآن
باستخدام واجهة سطر
الأوامر (CLI) إنشاء فرع
لكل ما يحتاجه ليعمل
بأمان. وهذا يشمل
قاعدة بياناتك،
ودوالك، وحاويات
التخزين، ومستخدمي
المصادقة، وأي شيء
تحتاجه. يحصل كل وكيل
على نسخته الخاصة
فوراً. يمكن لمشاهدي Rob
Shox التسجيل في Neon
مجاناً عبر الرابط
الموجود في الوصف
أدناه. حسناً، هذا
الجزء مثير للاهتمام
حقاً. يُطلق عليه اسم
التطوير القائم على
الشك. لقد سمعنا عن
التطوير القائم على
النطاق (Domain-driven)، وهذا
هو التطوير القائم على
الشك. لأي قرار غير
بديهي أو مهم، يتم
تشغيل مراجعة سياق
جديدة وتتمثل مهمتها
الوحيدة في التشكيك في
الادعاء. إذن، ادعاء،
استخراج، شك، توفيق،
ثم توقف. إنه في الأساس
مراجعة خصمية أثناء
البناء، وليس فقط في
النهاية. بينما تبدأ
في قراءة بقية
المهارات، ستبدأ في
ملاحظة بعض الأصدقاء
القدامى والنماذج
الفكرية المعروفة.
قانون حيرام في مهارة
تصميم واجهة برمجة
التطبيقات (API). أي أن
كل سلوك يمكن ملاحظته
في واجهة برمجة
التطبيقات الخاصة بك
سيعتمد عليه شخص ما في
النهاية. ثم قاعدة
بيونسيه في مهارة
الاختبار. إذا أعجبك
شيء ما، فعليك وضع
اختبار له. لن أغني هذا
الجزء. وسياج
تشيسترتون في تبسيط
الكود: لا تزل السياج
حتى تعرف سبب وجوده في
المقام الأول. التطوير
القائم على الفرع
الرئيسي، والالتزامات
البرمجية الصغيرة
والذرية، واعتبار
الكود عبئاً. إذاً،
هذا هو في الأساس عقل
أوديا إيماني في هندسة
البرمجيات وقد تحول
إلى تعليمات للوكلاء.
بصراحة، إذا لم تقم
بتثبيت هذا مطلقاً،
فإن مجرد قراءة هذه
المهارات تعد دورة في
هندسة البرمجيات أفضل
من معظم الدورات
الأخرى. إذاً، كيف
يقارن هذا بالاثنين
الآخرين؟ مهارات مات
بوكوك تطرح في الأساس
سؤالاً: هل نحن متفقون
على ما نبنيه؟ إذاً،
هل أنت والوكيل متفقان
؟ أنت تقوم بإعداد
النطاق. مهارته الأكثر
شهرة هي "استجوبني"(Grill
me)، وهي ببساطة حيث
يقوم الوكيل
باستجوابك قبل أن يكتب
أي شيء. ثم هناك فكرة
مسرد اللغة المشترك،
والذي يتمثل في سجلات
القرارات (ADORs)،
بالإضافة إلى
المواصفات والتذاكر.
لا يزال مات يلتزم
بدورة حياة تطوير
البرمجيات (SDLC)
التقليدية، لكنه
يقترب منها بطريقة
مختلفة. تركز الكثير
من مهاراته على بذل
الجهد مقدماً قبل أن
تبدأ فعلياً في
البرمجة. وقد صرح
علانية بأنه يعارض
استخدام أطر العمل.
فهو يعتقد أن أشياء
مثل BDD و Spec It و Superpowers
تسلبك التحكم. لذا،
مهاراته صغيرة عمداً،
وقابلة للتركيب،
ويمكنك استخدامها
حيثما تحتاج وتعديلها
بنفسك. تفسيري لـ "حديث
السلام"(Peace Talk) الخاص
بـ لورين تان يتمحور
حول ما إذا كان
بإمكانك إثبات أن
الأمر يعمل. لورين
تتعمد عدم امتلاك أي
مهارات تخطيط. شعارها
هو أن أفضل مواصفات هي
الكود البرمجي ذاته.
كل الثقل يقع فعلياً
على التحقيق، والتحقق
، والمراجعة متعددة
الوسائط بعد وقوع
الحدث. اجتياز عملية
البناء (Build) لا يُحتسب
كدليل. نحن بحاجة إلى
إثبات ذلك. أما مهارات
علي فهي تتمحور أكثر
حول ما إذا كنا قد
اتبعنا العملية
بأكملها. إنه الوحيد
من بين الثلاثة الذي
يغطي دورة حياة تطوير
البرمجيات بالكامل
وصولاً إلى التكامل
والنشر المستمر،
والمراقبة، وإيقاف
الميزات، والشحن. ربما
تكون الأكثر ملاءمة
للفرق والأكثر قابلية
للنقل حيث يتم تثبيتها
في حوالي 70 وكيلاً
مختلفاً. ما انتهى بي
الأمر إليه شخصياً هو
مزيج من كل هذه معاً،
وأنا لا أستخدمها
جميعاً في نفس الوقت.
سأستخدم مهارات
مختلفة في نقاط مختلفة
. لدي نسخ خفيفة
ومتوسطة وثقيلة من
بيئة تشغيل المهارات
الخاصة بي. لذا، استعن
بـ Pokerc عندما تكون
المشكلة غامضة، أو
عندما لا تكون متأكداً
مما تريده، أو تعمل
على قاعدة برمجية
ستتعايش معها لسنوات
وتهتم فعلاً بالتصميم.
لا تزال مهارة "
استجوبني" هي أفضل
مهارة فردية سأقوم
بتثبيتها أولاً
للقيام بذلك. سأستعين
بها عندما تكون ضمن
فريق يشحن إلى الإنتاج
وتريد عملية يمكن
التنبؤ بها يدركها
الجميع، أو عندما تريد
كل بوابات الجودة دون
تصميمها بنفسك. مجموعة
مهاراتي الخاصة تقع
أكثر في هذا النوع من
العمليات لأنني أعمل
مع فرق من المطورين
وأعلمهم كيفية تطبيق
الوكلاء. بعد ذلك
سأستعين بـ P stack عندما
تصبح الأمور معقدة
للغاية. إنه خطأ لا
يمكنك إعادة إنتاجه،
وأنت تتطلع إلى تطبيق
الأسراب والساحات (swarms
and arenas) لمواجهة
المشكلة. هناك عملية
ترحيل، ولديك وكلاء
يعملون لفترة طويلة،
ربما يكون تشغيلاً
ليلياً وتحتاج إلى
الوثوق بهم عندما
تستيقظ. وبالطبع، إذا
كنت تستخدم Cursor ولديك
العديد من النماذج،
لأن مهاراتها تعمل
بشكل جيد جداً كإضافة (
plugin) مع Cursor. وستلاحظ
أيضًا وجود تداخل كبير
وأنهم يقتبسون من
بعضهم البعض باستمرار.
الأمر لا يتعلق
بالاقتباس الفعلي، بل
بكون مهندسي
البرمجيات يميلون
جميعاً في الوقت ذاته
إلى نفس أساليب بناء
البرمجيات. لذا، سيكون
هناك الكثير من
التداخل. ومرة أخرى،
هندسة البرمجيات
تعتمد على الآراء، ما
عليك سوى اختيار الرأي
الأفضل وتطبيقه على
سير عملك الخاص. إنها
في الأساس مجرد ثلاث
زوايا لنفس الحرفة.
لذا، رأيي الشخصي في
كل هذا هو أنك لست
بحاجة حقاً إلى كل هذه
المهارات في كل مشروع.
هذا يعتبر مبالغة
كبيرة وغير ضرورية.
أصبحت الوكلاء الآن
أذكياء للغاية، ومن
أفضل الأشياء التي
يمكنك القيام بها هو
مراجعة ملف agents.md
الخاص بك أو مهاراتك
الحالية والبدء في
تقليصها وتشذيبها،
لأنك ستتفاجأ بمدى قوة
النماذج. أعتقد أن
المهارات الآن تتعلق
أكثر بكيفية تفضيلي
للعمل، بدلاً من كونها
بالضرورة لتعليم
الوكيل أي شيء جديد. في
الواقع، وجود ملفات
مهارات طويلة جداً
وعدد مفرط منها سيؤدي
فقط إلى تضخيم نافذة
السياق وإرباكها. لذا،
إذا كنت تغير لون زر
فقط، فأنت لست بحاجة
إلى مستند متطلبات (PRD)
، أو تقسيم للمهام، أو
مراجعة خماسية
المحاور من مكدس
البرمجيات، أو مدقق
أمني. أنت فقط بحاجة
لتغيير الزر والنظر
إليه. الطريقة التي
أفكر بها هي مستوى
الجهد المطلوب. يجب أن
تتناسب الإجراءات مع
حجم وأهمية ما تعمل
عليه. لذا، بالنسبة
لتعديل صغير، قم به
فقط ثم تحقق منه بنفسك.
إذا كان الأمر مرئياً
جداً أو يعتمد على
نموذج أولي، فافعل ذلك
بنفسك، وتحقق منه
بسرعة، وقم بالتحديث،
ثم تابع العمل. أنت
تكرر العملية مع
الوكيل. إذا كانت ميزة
صغيرة، فقم بجلسة
استجواب أو استكشاف
سريعة لضمان التوافق،
ثم استخدم التطوير
القائم على الاختبار.
إذا كانت ميزة كبيرة
أو غير واضحة تحاول
فهمها، فاستخدم
مواصفات وخططاً مقسمة
إلى مراحل، ثم تحقق من
كل مرحلة بينهما. إذا
كان الأمر يتعلق
بالإنتاج، أو يتضمن
جوانب أمنية، أو أي
شيء لا يمكن التراجع
عنه، فهنا يأتي دور
المراجعة الكاملة.
التطوير القائم على
التشكيك، ثم كل
تعزيزات الأمان
المصاحبة له. حتى "آدي"
يقول هذا عن مهاراته
الخاصة. دليله
لاعتمادها هو طرح
تدريجي يعتمد على
التحقق أولاً ضمن
قاعدة برمجية موجودة.
لا تقم بتثبيت 25 مهارة
وتحاول تشغيل كل شيء.
هذا يعتبر حملاً
زائداً بالكامل. وهناك
تكلفة عملية هنا أيضاً
. كل مهارة تثبتها هي
شيء يجب على الوكيل أن
يأخذه في الاعتبار.
وقد ينتهي بك الأمر
إلى تفعيل هذه
المهارات تلقائياً عن
طريق الخطأ عندما لا
ترغب في ذلك. المزيد من
المهارات لا يعني
بالضرورة وكيلاً أكثر
ذكاءً. لذا، أعتقد أن
الدرس الحقيقي هنا،
وهو ما كنت أقوله منذ
فترة، هو أن تعلم هذه
المهارات يعني في
الواقع تعلم ممارسات
تطوير البرمجيات
الجيدة. التطوير
القائم على الاختبار،
والشرائح الرأسية
الصغيرة، والاتفاق
على المتطلبات قبل
البدء بالبناء،
وتدوين أسباب اتخاذك
لقرار معين. أنت لا
تزيل السياج قبل أن
تعرف سبب وجوده في
المقام الأول. لا تذهب
لإزالة أي شيء قبل أن
تعرف تحديداً سبب
وجوده. ثم إثبات أنها
تعمل مقابل الشيء
الحقيقي. إذا رأيت
الضوء الأخضر في
الاختبار فقط، فهذا لا
يعني أن تطبيقك يعمل.
أنت بحاجة إلى اختباره
بشكل صحيح فعلياً. ولا
شيء من هذا جديد. ليس
الأمر وكأن أياً من
هؤلاء الأشخاص اخترع
هذا. يعزو مات بوكوك
الفضل إلى كتاب "
المبرمج البراغماتي"
ومنهجية التصميم
المعتمد على النطاق.
أندي يعتمد بشكل أساسي
على كتاب الهندسة
الخاص بجوجل. تمتلك
لورين سنوات من الخبرة
في "رياكت" و "ميتا".
المهارة هنا هي مجرد
وضع تلك الأفكار في
تنسيق يمكن للوكيل
اتباعه. لذا، لا
تتعامل مع أي من هذه
الحزم كدين. تعامل
معها كأنها كتاب
تعليمي من "أورايلي".
يمكنك تثبيتها
وقراءتها. تأخذ ما
ينجح منها ثم تبني
مهاراتك الخاصة فوقها.
وهذا يعني ببساطة
ترميز طريقة عملك. أنت
تشارك أفضل ما لديك مع
فريقك وهم يشاركونك ما
لديهم. إنها حزمتك
التقنية وهي معيار
الجودة الخاص بك. هذا
هو في الأساس فريقك
الخاص أو نظام عملك
الشخصي. سيكون هذا
مخصصاً لك وسيساعدك
على التحرك بسرعة أكبر
بكثير. وفي كل مرة يفسد
فيها وكيلك شيئاً ما،
لا تتصرف كالأطفال. لا
تشتمه. فقط اذهب وقم
بتحديث مهاراتك بناءً
على الدروس المستفادة
الجديدة. هذه هي
بالضبط الطريقة التي
بُنيت بها كل هذه
الحزم الثلاث. لذا،
إذا كنت تريد التعمق
أكثر في بناء مكتبة
المهارات الخاصة بك
وسير عمل الوكلاء،
فهذا بالضبط ما نقوم
به في "سويتش"، حيث
نذكر الدورة والمجتمع.
الرابط موجود في الوصف
بالأسفل ويمكنك
الانضمام إلى قائمة
الانتظار. أود أن أعرف
في التعليقات، ما هي
حزم المهارات التي
تشغلها الآن؟ هل كتبت
مجموعات مهارات خاصة
بك؟ لا تتردد في
مشاركتها في
التعليقات. أود أن
أعرف ما الذي يبنيه
الناس فعلياً
ويستخدمونه في بيئة
الإنتاج. إذا كان هذا
مفيداً، اشترك لأن هذه
سلسلة مستمرة. إذا
فاتتك الحلقات، فإن
تحليل "بي ستاك" وفيديو
مات بوكوك يظهران على
الشاشة الآن. يجب عليك
مشاهدتهما بعد ذلك.
Ask follow-up questions or revisit key timestamps.
يتناول الفيديو تحليلًا لمجموعة مهارات آدي عثماني للذكاء الاصطناعي، وهي مجموعة من الأوامر والتعليمات (Skills) التي تُوجه الوكلاء البرمجين. يستعرض الفيديو نهج آدي القائم على دورة حياة تطوير البرمجيات التقليدية، ويقارنه بنهجي لورين تان ومات بوكوك، موضحاً أن الهدف ليس تثبيت كل الحزم المتاحة بل اختيار ما يناسب حجم المشروع ومستوى تعقيده، مع التأكيد على أن تعلم هذه المهارات هو في جوهره تعلم لممارسات هندسة برمجيات جيدة.
Videos recently processed by our community