اضغط على هذا: أهمية الأدوات الحديثة والاختبار الآلي في تطوير WordPress مع جوش بولوك
نشرت: 2022-05-12مرحبًا بك في Press This ، بودكاست مجتمع WordPress من WMR. يجلس المضيف هنا David Vogelpohl مع ضيوف من جميع أنحاء المجتمع للحديث عن أكبر المشكلات التي تواجه مطوري WordPress. ما يلي هو نسخة من التسجيل الأصلي.
مدعوم من RedCircle
ديفيد فوجلبول: مرحبًا بالجميع ومرحبًا بكم في Press This the WordPress community podcasts on WMR. هذا هو مضيفك ، David Vogelpohl ، أنا أدعم مجتمع WordPress من خلال دوري في WP Engine ، وأحب تقديم أفضل ما في المجتمع إليك كل أسبوع عند الضغط على هذا كتذكير ، يمكنك أن تجدني على Twitterwpdavidv ، أو يمكنك الاشتراك للضغط على هذا على iTunes أو iHeartRadio أو Spotify أو تنزيل أحدث الحلقات على wmr.fm. في هذه الحلقة ، سنتحدث عن أهمية الأدوات الحديثة والاختبار الآلي وتطوير WordPress على وجه الخصوص ، بالطبع والانضمام إلينا في تلك المحادثة. أود أن أرحب بالضغط على السيد جوش بولوك. جوش ، أهلا بك.
جوش بولوك: شكرًا لك. أشكركم على استضافتي. كيف حالك؟
DV: جيد ، جيد. أنا متحمس حقًا. ليشاركك في العروض. كنا نتحدث نوعًا ما قبل التسجيل الذي كنت فيه أكثر من غيره ، أعتقد أن WordPress Pollock الأكثر شهرة من بين جميع Pollocks ، أليس كذلك؟
JP: بالمقارنة مع جاكسون بولوك الأقل شهرة ، لكن نعم ، لم يكن كذلك
DV: ليس تقريبًا مثل WordPress الشهير كما أنت. لذلك أعتقد أنك حصلت على جاكسون هناك.
JP: أليس كذلك؟ نعم. أنا معجب بعمله بالرغم من ذلك.
DV: آه ، من الجيد أن تتعلم. بالنسبة لأولئك الذين يستمعون ، وسيتحدث جوش اليوم. يأتي جوش إلينا من عدة مناطق مختلفة ولكنه يركز بشكل خاص على توصيل الجهاز. سنتحدث قليلاً عن ذلك ، ولكن أيضًا حول أفكاره حول سبب أهمية أدوات التطوير الحديثة والاختبار الآلي في تطوير WordPress. لذا ، إذا كنت من رعاة البقر أو راعية البقر ، فسيتحدث جوش قليلاً عن السبب الذي يجعل طريقًا آخر قد يكون أفضل. بعض أدواته المفضلة لذلك وكيفية التعامل مع الاختبار الآلي مع مشاريع تطوير WordPress الخاصة بك. قبل أن ننتقل إلى ذلك ، أود أن أذكر الأشخاص الذين أعلم أنك ربما سمعت هذا في الحلقات السابقة. في 25 أبريل 2022. سيعقد WP Engine مؤتمر فك التشفير الافتراضي الخاص بنا. ترغب في التحقق من ذلك. تعرف على المزيد حول تطوير WordPress في مجموعة متنوعة من الموضوعات. يمكنك زيارة الأحداث في WP engine.com إلى الأمام وفك الشفرة 2022 حسنًا ، جوش ، سأطرح عليك السؤال الأول الذي طرحته على جميع ضيوفي. هل يمكن أن تخبرني بإيجاز عن قصة أصل WordPress الخاصة بك؟ متى كانت أول مرة استخدمت فيها WordPress؟
JP: نعم ، ربما أستخدم WordPress للمرة الأولى. دعنا نقول 2011 2012 لكتابة مدونة ، مثل Wordpress.com في ذلك الحين ، فأنا أحب Googled كيف تفعل شيئًا وكانوا مثل لصق شيء ما في وظائف dot php. لذلك اضطررت إلى الانتقال إلى WordPress المستضاف ذاتيًا ولا أعتقد أنني قمت بالفعل بالكثير من العمل على تلك المدونة. لقد تم تشتيت انتباهي حقًا مثل جزء الكود. وقد قادني ذلك إلى الإعجاب بمجتمع WordPress والتطوع مع فريق مراجعة السمات ثم سأعمل في pods ، وهو مكون إضافي مثل الحقول المخصصة وأنواع المنشورات المخصصة وله واجهة مستخدم له وحصلت على العمل كشخص داعم هناك. سكوت كينجسلي كارد ، المطور الرئيسي هناك والجميع يدعمني حقًا وساعدني في التعلم مثل التطوير وبدأت حقًا في التطوير من هناك. هذا بارد.
DV: متى تم تشتيت انتباهك لأول مرة بالرمز الذي قلته عام 2011 أو 12 عندما حاولت بدء مدونة؟ هل كانت بعد ذلك بقليل أم؟
JP: نعم ، نعم ، لقد كنت مثل WordPress 2.7 ، أعتقد أنه كان الإصدار الأول الذي عملت عليه. أعني ، أعتقد أن الإصدار الأول كما استخدمته وأعتقد أن الإصدار الأول الذي ساهمت فيه كان مثل ثلاث نقاط.
DV: حسنًا ، 2011 كان من الممكن أن يكون هذا بعد نوع المنشور المخصص مباشرةً. لذلك كان من الممكن أن يكون هذا وقتًا ممتعًا في WordPress. أفكر في 237 بعض الحلقات الفردية التي قمت بها. أنت أول قصة منشأ لـ Wordpress.com. لذلك أعتقد أنه قد يكون لديك تمييز عن ذلك وجميع الأشخاص الذين قابلتهم هذه السنوات ، لكن هذا رائع جدًا لأنك بدأت نوعًا ما هناك. في عالم المدونات. ثم انتقل سريعًا نوعًا ما إلى جانب التطوير باعتباره أمرًا مثيرًا للاهتمام حقًا. لقد ذكرت في وقت سابق من ذلك العام باستخدام جهاز البرنامج المساعد ، هل يمكنك إخبارنا بما يفعله جهاز البرنامج المساعد وماذا تفعل هناك؟
JP: نعم ، هذا منتج جديد أقوم بتطويره ، كما تعلمون ، أعني ، إنه كما تعلمون ، إنه منتج منفرد. الشيء الذي أقوم ببنائه كأنني مطور مستقل الآن ، على سبيل المثال ، بين أجزاء القصة ، قابلت بعض الأشخاص الذين كانوا يعملون على مكون إضافي يسمى أشكال القطع من خلال الكبسولات في شركة تحيط بذلك لفترة من الوقت. وبعد ذلك قمت بعملين في مساحة WordPress وأنا الآن مطور مستقل. وفي كثير من الأحيان أقوم بإنشاء مكونات WordPress الإضافية لمواقع WordPress. كأنني لست شخصًا ستذهب إليه وتكون مثله ، فأنا بحاجة إلى إنشاء موقع لعملي. كما لو أنني سأبني وظائف رائعة لذلك. سيبني لنا شخص آخر موضوعًا أو أيًا كان ، ومن أجل ذلك لمشاريعي الخاصة ، ظللت أتوقف عن معرفة كيف يمكنني بدء هذا المكون الإضافي؟ مثلما أريد أن يكون لدي كتل وأريد التأكد من أنني أستخدم نصوص WordPress ، مثل الأداة الجديدة لتجميع كود JavaScript ، بما في ذلك React code والطريقة التي تعمل بها متوافقة مع WordPress. في الحال. إنه معيار WordPress. إنه المكان الذي كان يشبه فيه تنفيذ المشروع الأخير الذي عملت عليه مرارًا وتكرارًا.
DV: هذه بداية كل البرامج الرائعة ، أليس كذلك؟
JP: نعم. لذلك أدى هذا النوع إلى ما أسميه الآن آلة التوصيل وهي أداة تقوم ببعض الأشياء. أول شيء هو أنه يساعد في بدء المكونات الإضافية مثل إنشاء كل التعليمات البرمجية التي تحتاجها مع جميع اصطلاحات التسمية الصحيحة في التبعيات للقيام بأشياء مثل استخدام الملحن لـ PHP autoloader في التبعيات أو استخدام برامج WordPress النصية للكتل الخاصة بك. كل هذه الأنواع المختلفة من الأشياء. وقد جعلني هذا دائمًا مهووسًا بالأجزاء المتحركة من الخطأ قيد التطوير ، والاختبار الآلي ، وإنشاء ملف مضغوط صحيح يحتوي على جميع الملفات الصحيحة التي تريدها هناك ، ولكن ليس الملفات التي لا تريدها لا تريد. مثل اختباراتك التي تريد تثبيتها. لذلك أنا أقوم بتسجيل الدخول ، وهذا النوع من الأدوات الكاملة لبدء المكونات الإضافية ، وإضافة ميزات إلى المكونات الإضافية ، أحتاج إلى إضافة كتلة وصفحة قائمة البيانات ثم إنشاء مثل إصدار الحزمة النهائي الذي يمكن أن ينتقل إلى موقع WordPress.
DV: والالتزام بإطار تطوير للمكونات الإضافية. أعتقد أنه إذا اضطررت لذلك ، مثل استخدام بضع كلمات لوصفها. هذا يشتعل؟
JP: هذا رائع. سأكتب ذلك. لا ، لا ، هذا هو الجزء الذي يجعلني أحب مشاهدة البودكاست وكأنك لديك طريقة رائعة لتبسيطها مثل إطار تطوير لمكونات WordPress الإضافية ، مثل خدمة مستضافة و CLI التي تستخدمها للحصول على واجهة مستخدم حيث يمكنك النقر كما لو كنت أريد استخدام أنواع منشورات مخصصة وأريد استخدام الكتل وبعد ذلك عندما تكون في المكون الإضافي الخاص بك ، يمكنك أن تعرف ، اكتب أوامر سريعة مثل جهاز المكونات الإضافية ، والمكونات الإضافية ، منح zip ، ملف مضغوط من جيبك.
DV: هذه الأنواع من الأشياء. لذلك أنا أحب ذلك عندما يكون البرنامج بالطبع نوعًا ما في حاجة ونوعًا من الطريقة المعتادة ، ومن المثير للاهتمام أن تسمع قصة أصل آلة المكونات الإضافية تقدر أنك لا تزال متمسكًا بها ولكن نوعًا ما تخرج وأنت '' إعادة نوع من النهج المحلي ، وهكذا مثل رحلتك التي بدأت مع wordpress.com ، صحيح ، مثل حرفياً ، لن يدخل أي موقع ويب من نوع الكود سريعًا في نوع من التطوير الأكثر تقدمًا. لذا ساعدني في فهم جمهورنا حتى يفهم مثل عندما تتحدث عن ، اقتبس من الأدوات الحديثة مع تطوير WordPress ماذا يعني ذلك لك ولماذا هذا مهم؟
JP: نعم. بالنسبة لسياق كيف تمت الموافقة على من أتحدث ، يقول ، أنا ، كما تعلمون ، مطور مكونات WordPress الإضافية ، ستعمل مطور تطبيقات الويب ، وأنا أتحدث عن إنشاء مكونات WordPress الإضافية ، والمكونات الإضافية المخصصة لموقعك. قد يكون هذا مكونًا إضافيًا فريدًا يفعل شيئًا غير موجود ، كما تعلم ، فهو يوسع WooCommerce بطريقة فريدة ومثيرة للاهتمام لعملك ، أو المكونات الإضافية التي يطورها الأشخاص لتوزيع المصادر المفتوحة أو البيع. لذا عندما تفعل ذلك ، فأنت لا تعرف ، مثل عندما بدأت في إنشاء المكونات الإضافية ، مثل مرحبًا ، شك ، إنه ملف واحد فقط. لا تحتاج حقًا إلى أي شيء خاص لذلك. ولكن مع ازدياد تعقيدها ، تبدأ في الحصول على تبعيات آلية ، صحيح أنك تريد استخدام أداة تجميع البرامج النصية لـ WordPress ، فأنت تريد استخدام حزمة مكونات WordPress التي ستستخدم نفس المدخلات وتحديد نوع عناصر التحكم في النموذج كما يعرف Gutenberg. أثناء القيام بذلك ، تبدأ في الحاجة إلى شيء يمكنه تثبيته تلقائيًا مثل NPM أو الغزل ، ثم تحتاج إلى أداة يمكنها تشغيل عملية الإنشاء تلقائيًا لإنشاء برامج نصية للويب أو JavaScript آمنة للمتصفح. وبعد ذلك تبدأ في الدخول إلى ما نسميه الاختبار الآلي ، حيث نكتب كودًا إضافيًا يعمل على تشغيل الكود الخاص بنا للتأكد من أنه يعمل بالطريقة الصحيحة. وهناك الكثير من التعقيد هناك وأعتقد أن هذا يجعل الأمر صعبًا لأنك تتعلم هذه الأدوات ، وتتعلم كيفية استخدامها في نفس الوقت وتتعلم شيئين في وقت واحد
DV: كان الأمر ممتعًا لأن سماعك تصفها ، استخدم كلمة أتمتة لكل رصاصة كما تحدثت عن الحديث للإعجاب من ، كما تعلم ، تثبيت الحزم والتعامل مع التبعيات ثم تشغيل نوع الاختبار الخاص بك. ويبدو أنك تعلم ، إذا لم تكن قد قمت بهذه القطع على طول الطريق ، عليك أن تتعلم كل من الأتمتة وما الذي يفعله الشيء بالبرنامج الذي تقوم بإنشائه. ويمكنني أن أرى ذلك ، كما تعلمون ، يمثل تحديًا كبيرًا لكثير من الناس. أنا أشعر بالفضول ، على الرغم من ذلك ، حول تلك الرحلة ، وربما كيف يمكن للناس تجاوز ذلك نوعًا ما. سنأخذ أول استراحة. سنعود حالا. حان الوقت للانطلاق في استراحة تجارية. ابقوا متابعين. للمزيد ، اضغط على هذا في لحظة. مرحبًا بكم مرة أخرى للضغط على بودكاست مجتمع WordPress هذا على W EMR. نحن في منتصف الحديث مع جوش بولاك ، حول أهمية الأدوات الحديثة والاختبار الآلي وتطوير WordPress. جوش ، قبل الفاصل مباشرة ، كنت تشرح نوعًا ما الأدوات الحديثة. لقد مررت نوعًا ما بقائمة من نوع المكونات الرئيسية لها. لقد استمررت في التأكيد على الأتمتة قبل أن نذهب ونوضح أن الناس يجب أن يتعلموا كلا النوعين من النهج الآلي ولكن أيضًا نوع ما تفعله الأدوات. هل كان ذلك تحديا لك؟ هل بدأت بتبني هذا النوع من التطوير؟
JP: حسنًا ، أجل ، تمامًا. في أنا الطالب الذي يذاكر كثيرا مثل الناس. أنا أكره هذا الجزء منه. انا استمتع به. لكن عندما أحاول كتابة ميزة ، عندما يكون عقلي في مساحة ، تحدثت إلى عميل وهم بحاجة إلى هذا الشيء ليبدو مثل هذا ويذهب هنا. أريد كتابة كود PHP و JavaScript. لا أريد أن أكتب ، كما تعلم ، إعداد اختبار آليًا أو تكوين NPM على الرغم من أنني شخص الطالب الذي يذاكر كثيرا لتلك الأشياء. لا أريد أن أتعامل معها عندما أكون في حيز عقلي لأقوم بعمل مثل القيام بالعمل الفعلي. لقد كان هذا هو التحدي دائمًا بالنسبة لي لأنني كنت مهتمًا بكليهما ، لكن الأمر مثل الجميع ، من الصعب القيام به مرة واحدة. إذن ما تفعله آلة المكونات الإضافية لي وأنا ، ولأشخاص آخرين مثلي ، هو النقر على بعض الأزرار والحصول على إعداد جميع الأجزاء الموجودة هناك ليتم تشغيلها تلقائيًا. وعندما أقول آليًا ، أعني أشياء مثل أنه يمكنني الحصول على أمر واحد والتمهيدي الذي يهيئ بيئة التطوير المحلية ويسمح لي برؤيته في المتصفح وإجراء الاختبارات التي لدي إجراءات GitHub التي يتم تشغيلها في كل مرة يتم فيها إجراء تغيير الاختبارات في بيئات مختلفة مع إصدارات مختلفة من WordPress ، إصدارات PHP مختلفة. للتحقق تلقائيًا مما إذا كان الرمز الخاص بي متوافقًا مع كل هذه الأشياء المختلفة. لأن هذا يمثل تحديًا في WordPress. وأنا ، بصفتي مطورًا ، لست مضطرًا للتفكير مليًا في الأمر لأنه بضع نقرات على الزر للإعداد ثم تنظر في الملف التمهيدي الذي يقوم بقص ولصق هذا الأمر الذي يقوم بمجموعة من الأشياء. هذا الرجل يفعل الكثير من الأشياء التي تسمح لك بمعرفة السبب
DV: مثل الكثير من الخطوات الإضافية ، هناك الكثير من الأشياء الإضافية التي يجب أن تدور حولها. إنه لأمر رائع أن تستخدم نوعًا من إطارات العمل المؤجلة لتقربك. ولكن مثل لماذا مثل لماذا تمر بكل هذه المشاكل لدمج أدوات الاقتباس الحديثة في عملية التطوير الخاصة بك.
جي بي: بالنسبة لبعض الأشياء ، يعد هذا مطلبًا أساسيًا. مثل إذا كنت تريد استخدام React داخل WordPress لشيء مثل الكتلة ، وبناء مثل صفحة مشرف رائعة للمكوِّن الإضافي الخاص بك ، مع وجود عنصر تفاعلي للواجهة الأمامية ستحتاج إلى استخدام أدوات WordPress الصحيحة لتجميعها بطريقة لن يتسبب في حدوث مشكلات في التوافق مع المكونات الأخرى القائمة على التفاعل في موقع WordPress. لذلك ، كلما أصبح الأمر أكثر وأكثر فاعلية كشرط كما قد ترغب في ذلك ، قد يكون لديك مكون إضافي موجود هناك لفترة من الوقت ، وتحتاج إلى إجراء بعض التغييرات ، لكنك لا تريد ذلك كسر الأشياء الموجودة بالفعل. أفضل طريقة للتعامل مع ذلك هو كتابة اختبارات آلية تصف الطريقة التي يعمل بها الآن وإذا قمت بإجراء تغيير يتسبب في فشل أحد هذه الاختبارات ، فتوقف عن النسخ الاحتياطي ، كما تعلم ، أصلح هذا الخطأ بدلاً من شحنه إلى حسابك المستخدمين. هذه حالة أخرى حيث يكون الأمر مشابهاً لك ، تصبح الحاجة إلى إسعاد عملائك والحصول على منتج مستقر.
DV: حسنًا ، هذا ليس مثيرًا للاهتمام حقًا لأنه كان هناك الكثير من النقاش حول هذا الأمر مؤخرًا في WordPress ، وهو ، كما قال روب ستينسون ، أحد زملائي هنا في WP Engine يشير إلى أن الأشياء السهلة في WordPress أصبحت أسهل ، مثل محرر الكتل والأشياء الصعبة تزداد صعوبة ، مثل إنشاء مكون إضافي وظهور نوع من الملاحظات هناك على ما تعرفه ، نوع من أساليب التطوير الأكثر تقدمًا من الماضي النسبي حتى لدمج رد الفعل قليلاً مثل استخدامه باعتباره إطار العمل. لذلك هذا حقا يبدو صحيحا. ويبدو أن الفائدة تتمثل في الوقت الذي تقضيه من الآن فصاعدًا خاصةً مع أشياء مثل الاختبار الآلي من الاضطرار إلى إعادة ترميز الأشياء التي شحنتها والتي تعطلت وأعتقد أيضًا أنك تحب الاحتفاظ بعملك إذا كنت أنت أو عملائك إذا كنت تقوم بالشحن ، الكثير من التغييرات المفاجئة والتخمين أنها أيضًا فائدة مثل وجود فائدة مالية.
ج ب: نعم ، كما لو كنت شخصًا على هذا الجهاز. أو هذا نوع من النكتة وراء توصيل الجهاز. مثل أنا الاسم على الفور. أنا لا أجيد فعل الشيء نفسه مرارًا وتكرارًا. بنفس الطريقة بالضبط. حق. لهذا السبب نستخدم أجهزة الكمبيوتر. كما لو كنا مثل ، مرحبًا ، سأخبرك كيف تتعامل معه. نحن نسمي هذا الرمز. ثم نقوم بتشغيله مرارًا وتكرارًا واثقين في أجهزة الكمبيوتر لفعل الشيء نفسه. مرارًا وتكرارًا ، وبنفس الطريقة بالنسبة لي ، هذا بالنسبة لي لا أريد القلق بشأن ما إذا كان التغيير الذي أجريته قد حدث حتى أتمكن من اختباره يدويًا بنفس الطريقة تمامًا في كل مرة وهذا كما قلت في ذلك الوقت بشكل صحيح وهذا خطأ بشري أو لدي فقط برنامج يعمل 48 وكلما أعتقد أننا نسهل على مطوري WordPress الإضافات والقوالب إجراء اختبار آلي بدون الإعجاب ، أوه ، أود ذلك ولكن ليس لدي وقت لمعرفة كيفية إعداده. أنا أكثر أن تلك الأشياء السهلة التي يسهل على المستخدم النهائي ستكون مستقرة ، أليس كذلك؟ لأن الأمر لا يقتصر على أننا نريد أن تكون واجهة المستخدم أسهل في الاستخدام أو أسهل في التعلم. لا نريد أشخاصًا مثل هذا هو الشكوى حول WordPress. تحصل على موقع الويب الخاص بك ثم تقوم بتحديث المكونات الإضافية الخاصة بك. حق. مثل هذا هو الشيء الذي يواجه الجميع مشكلة معه كمستوى مستخدم. إنه ليس شيئًا يمكننا حله للمستخدمين مباشرةً. إنه شيء يتعين علينا حله بالطريقة التي نبني بها مكون WordPress من الطريقة التي نختبر بها ذلك
DV: لذلك مثل المواعيد النهائية دائمًا مثل توقعاتك. مثل متى تريد هذا غدا؟ حق؟ لا أعتقد أن أحدًا لم يقل لي ذلك أبدًا ، أوه ، نحتاج إليه في ستة أشهر. لا مشكلة ، صحيح. الكل يريد كل شيء في اليوم التالي. وهكذا ، تتعرض الفرق لهذا الضغط. أشعر بالفضول فقط بشأن كيفية تفكيرك في كتابة الاختبارات أو مجموعات الاختبار ، كما تعلم ، في منح الناس نوعًا من الزحف ، أو المشي ، أو الجري ، أو هل هناك بعض المجالات الرئيسية أو هل تحب أن تبدأ وتحب ، حاول أن تكتب ما تريد تشعر كجناح اختبار كامل أو تحاول اختياره في أجزاء معينة كما يتعلم الناس ، كيف يمكنك أن توصي؟ التعامل معها مثل الذهاب لمجموعة الاختبار الكامل؟ خلع قطعة ثم تعلم بهذه الطريقة؟ أو ما رأيك في هذا الجزء؟
JP: هذا سؤال رائع. أقوم بهذا النوع من الاستشارات مع الأشخاص في بعض الأحيان حيث أحب إلقاء نظرة على التعليمات البرمجية الخاصة بهم وليس فقط إعداد الاختبارات الآلية ، ولكن مثل العمل معهم على تدريبهم على ما يجب عليهم اختباره. وفي كثير من الأحيان ، يكون هذا أحد الأشياء التي تعيق الناس هو أنهم يشعرون بالذنب نوعًا ما لأنهم لا يخضعون لأي اختبارات ومن ثم لا يمكنهم الحصول على تغطية كاملة للاختبار. حق. وأعتقد أن هذه طريقة غريبة للتعامل معها لأنها مثل أنك لم تفعل شيئًا بعد. بالطبع ليس لديك الشيء نتيجة الشيء. وأنت لم تقم بكتابة الاختبار ، كما تعلم ، الاختبار ولكن الاختبارات مفيدة ، حتى لو لم تغطي كل شيء. أعتقد أن هذا هو السبب الحقيقي ، القلق الذي يشعر به الناس هو أنني لن أحصل على تغطية كاملة للاختبار. إذا كتبت للتو بعض الاختبارات. إنه مثل ، نعم ، لكنك قد اقتربت خطوة من ذلك. لقد بدأت في ذلك. لقد حصلت على فرصة لتعلم كيف تيسكو ، على سبيل المثال ، لدي مكون إضافي كتبته لعميل يضيف اختصارًا. مثل هذا كل ما يفعله. وهكذا كتبت إلى ولديها ما تعرفه ، إذا لم تكن قد سجلت الدخول ، فستظهر رسالة لك حول تسجيل الدخول. لذلك كتبت اختبارين ، كلاهما يستدعي الوظيفة التي تعرض الرمز القصير تأكد من أنه لا يخطئ. هذه هي الاختبارات الأكثر تفصيلاً في العالم. ولكن عندما ألزمتهم لأول مرة بعد ذلك ، كانت أول مرة قمت فيها بكتابة المكون الإضافي للاختبار وواجهت مجموعة كاملة من الأخطاء ، فقط من تشغيل تلك الاختبارات ، كما هو الحال في عملية إنشاء الرمز القصير الذي أحدثته كثيرًا من أخطاء PHP وتمكنت من العمل والتخلص من هؤلاء. ومن ثم منحني ذلك الثقة في المستقبل أنه إذا كان هناك شيء واحد من ثلاثة أو أربعة أجزاء مختلفة مما يدخل في كسر الرمز القصير هذا. كما تعلم ، سيفشل ذلك في الاختبار.
DV: يبدو أنك تفكر في الأمر من حيث الوظيفة الأساسية للبرنامج الذي أنشأته ، وتحديد تلك الوظائف الرئيسية ثم كتابة الاختبارات. حول هؤلاء للبدء من أجل عزل المكان الذي قد تظهر فيه مشكلات البرامج الخاصة بك. هل هذه طريقة عادلة لتقديمهم؟
جي بي: أود أن أقول ذلك ، نعم ، لأن ذلك يبدأ باختبارين يقولان أن شيئًا ما معطل ، مثل تغطية اختبار جيدة حقًا. قد ترغب في اختبار واحد لكل جزء على حدة. من البرنامج. وهكذا يبدو الأمر وكأن أحد الاختبارات قد فشل وأنت مثل ، حسنًا ، هذا يخبرني بالضبط أين يجب أن أذهب في قاعدة الكود الخاصة بي لحلها. ربما ستصل إلى هناك ، ربما تكون هذه طريقة لتطوير مكون إضافي جديد للمنتج. ولكن إذا كان لديك اختبار واحد يقوم بذلك ، كما تعلم ، فتأكد من أن مدونتك يمكنها إضافتها في محرر التدوينات. تأكد من أنه يمكن إرسال النموذج الخاص بك وأنه لا يوجد أي أخطاء. هؤلاء يغطون الكثير في ذلك الوقت في المستقبل عندما ينهار هؤلاء ، كما تعلمون ، ويفشلون لسبب محدد. ثم النوع الثاني من الأشياء التي أحبه وهي مثل المرحلة الأولى. المرحلة الثانية هي المرة التالية التي يفشل فيها اختبار الخطأ الصحيح بسبب هذا الخطأ في ذلك الوقت يمكن أن يمر بمجرد إصلاح الخطأ لأنه لديك الآن المزيد من التفاصيل في الاختبار ، ولديك دليل على أنك قمت بإصلاح الخطأ وأنت لديهم حماية ضد تكرار حدوث ذلك في المستقبل.
DV: يعجبني ذلك ، فأنت تستخدم نوعًا ما الحقائب المستقبلية لأنها تظهر كوسيلة لإضافة المزيد من التغطية الاختبارية ، وبالطبع المناطق التي تحتاج إلى تصحيح الأشياء التي تنكسر. إنها طريقة ذكية لتوليد ذلك كاقتراح رائع. أريد أن أتعمق أكثر هنا وأتحدث عن ثقافة البرمجة في الغرب المتوحش و WordPress. سنأخذ استراحة الأخيرة وسنعود حالًا. حان الوقت للانطلاق في استراحة تجارية. ترقبوا المزيد من الضغط على هذا في لحظة. نرحب بالجميع مرة أخرى للضغط على بودكاست مجتمع WordPress هذا على WMR. نحن نتحدث عن الأدوات الحديثة لمطوري WordPress مع Josh Pollock. قبل الاستراحة مباشرة ، كنا نتحدث قليلاً عن كيفية تفكير جوش بأي حال من الأحوال في الاقتراب من كتابة مجموعات الاختبار الخاصة بك نوعًا من التركيز على الوظائف الأكثر أهمية أولاً. لقد أحببت حقًا اقتراحك جوش حول استخدام نوع من الأخطاء في الوقت الحالي لتعزيز مجموعة الاختبار الخاصة بك. اعتقدت أن هذا كان ذكيًا حقًا. كما تعلم ، لدى WordPress ثقافة ترميز رعاة البقر ، إذا كنت ستحصل على Wild West على قضيبك أيضًا ، هل ترى أن ثقافة الاختبار الآلي بدأت تتجذر ، هل هذا المفهوم مثل الاقتباس الصعب يزداد صعوبة ، مثل جعل الأدوات الحديثة . لقد ذكرت أيضًا أحد المتطلبات ولكن أيضًا فكرة الاختبار الآلي. هل تشعر أن هذا يتجذر في WordPress أم أنك ما زلت تشعر أنه كما تعلم ، التثبيت لمدة خمس دقائق والموقع الإلكتروني لمدة 10 دقائق؟
JP: حسنًا ، هذا يعتمد على المشروع ، أليس كذلك؟ كما لو أن هناك شيئًا خاطئًا مثل أنه رائع عندما يمكنك القيام به مثل المكونات في machine.com مثل موقع الويب الذي يحتوي على WordPress فهو بالفعل يبني نفسي الآن. ليس لدي أي من ذلك تحت سيطرة الإصدار. لا يوجد عملاء مثل هناك القليل من التعليمات البرمجية المخصصة من هذا القبيل. أحب التعديل إلى Hello Dolly. حق. إنها تمامًا مثل الأشياء الموجودة على الرف. لكن فكر كما كنت أعمل في وكالة. كانت جميع عمليات النشر تلقائية ، أليس كذلك؟ تم التحقق من كل شيء في التحكم في الإصدار ، باستخدام سير عمل طلب السحب. وبعد ذلك عند الدمج في فرع واحد ينشر الموقع تلقائيًا. أصبح الأمر أسهل ، وهناك الكثير من الأدوات لذلك. هناك الكثير من المضيفين الذين ، كما تعلمون ، يدعمون ذلك ولديهم ، كما تعلمون ، طرقًا موثقة للقيام بذلك والحصول على عمليات نشر آلية لمثل ، إذا كنت تبني موقعًا كاملاً. أعتقد أن هذه خطوة أولى رائعة لأنها فرصة لتوحيد هذا الجزء. وبعد ذلك ، في خط الأنابيب هذا ، ابدأ في إضافة الاختبارات إلى ذلك. أعتقد أن المزيد والمزيد من الناس يفعلون ذلك. كما تعلمون ، أنا أستخدم عميل FTP لسحب ، كما تعلمون ، الملفات إلى خادم في وقت سابق من هذا الصباح ، لأنه في بعض الأحيان يكون هو الطريقة الوحيدة للقيام بذلك. أممم ، وأعتقد ، نعم ، أعتقد أنه يتحسن ولكن ، كما تعلمون ، ليس الأمر سهلاً بما يكفي للناس. كما أنه ليس كذلك ، على ما أعتقد ، لأن مثل الملحن ليس مفهومًا أصليًا أو هيئة الصحافة التي تجعل الأمر أكثر صعوبة أو NPM. أعتقد أن هناك الكثير من العمل الذي يتعين القيام به في تلك المساحة. ومثل أنا حقًا أنا مهتم جدًا بهذه الطريقة. إذا كان لدي المزيد من الوقت ، فسأعتقد أن مشكلة رباطة الجأش ليست كذلك. يعمل مع WordPress. الرصاص ليس أداة رائعة. إنه يعمل للمشروع بأكمله ، لكن مثله لا يمكنه تثبيت التبعيات بشكل متكرر تلك الأنواع من المشاكل
DV: ولكن ماذا عن مثل الاختبار الخاص بك؟ اختبارك التي تستخدمها مثل خبراء تكنولوجيا المعلومات هنا لأنني أشعر أن هذا مانع كبير لكثير من الأشخاص الذين يحاولون تبني التطوير الحديث كان مثل ، كما تعلمون ، ما ، مجموعات الاختبار التي يمكنني استخدامها؟ ما هي أدوات الاختبار التي يمكنني استخدامها؟ أشعر بالفضول فقط ، إذا كان لديك أي توصيات للأشخاص الذين يستمعون حول الاختبار الآلي والأدوات أو اختبار مجموعات أو أطر عمل لـ WordPress يمكنهم التفكير فيها
JP: حسنًا ، بالنسبة لمطوري WordPress ، فأنت تفعل مثل المكونات الإضافية. أنت لا أستخدم فقط وحدة PHP وهي المعيار القياسي لمكونات WordPress لاختبار PHP. ثم هناك بعض الأدوات التي طورتها Yoast وهي مفتوحة المصدر وكجزء منها يسهل اختبارها باستخدام وحدة PHP ويتم إعدادها جميعًا تلقائيًا على جهازك. ثم بالنسبة لـ JavaScript jest ، والتي تشبه React. أعني ، هذا جزء من نصوص الفسفور الابيض. هذه هي الأشياء التي أستخدمها ، لكني أيضًا بالنسبة للأشخاص الذين قد يقومون بتطوير الموقع ، يمكنك إجراء اختبار آلي ، باستخدام أدوات مثل go students Specter أو Checkley ، حيث يمكنك برمجة الاختبار من خلال مثل ، لديك ملحق متصفح. بعد ذلك ، تدخل إلى المتصفح ، وتنقر فوق تسجيل وتقوم بأشياء مثل تسجيل الدخول إلى موقع الويب الخاص بك وإضافة منشور أو إضافة كتلة أو هذا النوع من الأشياء ، ثم يمكن تشغيلها على موقع الويب الخاص بك ، كل ما تعرفه ، مرة واحدة في اليوم أو مرة في الأسبوع. وهذه طريقة لعدم إجراء اختبار آلي للرمز ، كما تعلم ، الأشخاص الذين يمتلكون مواقع الويب وهم تعرفون ، إنها حقًا كبيرة عندما يرسل لك عميلك رسالة ويقول ، مرحبًا ، هذه الصفحة معطلة. هذه ليست طريقة رائعة لبدء التفاعل مع عميلك. من الأفضل كثيرًا أن نقول مرحبًا ، إشعار الفحص الآلي الخاص بنا أن التحديث الأخير كسر القسم وقمنا بالفعل بإصلاحه.
DV: أعتقد أنه من بين جميع حلقات سير العمل الحديثة التي قمت بها على مدار هذه السنوات. لا أعتقد أن شخصًا واحدًا قد قدم هذا المفهوم على الإطلاق. هذا ذكي حقًا. كان هذا رائعا. جوش ، شكرًا جزيلاً لك على انضمامك إلينا اليوم.
JP: على الرحب والسعة. شكرا لاستضافتي.
DV: إذا كنت ترغب في معرفة المزيد حول ما يخطط Josh لتوسيع رحلة مطور WordPress الحديثة الخاصة بك ، تحقق من pluginmachine.com شكرًا للجميع على الاستماع للاكتئاب هذا podcast مجتمع WordPress و WMR. لقد كان هذا مضيفك ديفيد فوجلبول. أنا أدعم مجتمع WordPress من خلال دوري في WP Engine. وأنا أحب أن أقدم لكم أفضل ما في المجتمع هنا كل أسبوع على Press This.