يستكشف ووردبريس طريقة عمل جافا سكريبت الحيادية لبناء كتل جوتنبرج
نشرت: 2017-09-23
يستمر النقاش حول اختيار إطار عمل JavaScript في WordPress في قناة # core-js Slack قبل اجتماع الأسبوع المقبل. أحد الموضوعات الأكثر حداثة هو إمكانية عرض كتلة حيادية الإطار لـ Gutenberg ، مما سيسمح للمطورين بتمديد المحرر الجديد باستخدام أي مكتبة JS يفضلونها. هذا يعني أن كتل Gutenberg ، التي يشار إليها بالعامية باسم "Gutenblocks" ، يمكن بناؤها باستخدام Vue أو React أو Preact أو Angular أو أي شيء يشعر المطور بالراحة عند استخدامه.
يؤكد مؤيدو هذه الفكرة أن اتباع نهج أكثر مرونة يجعل قرار إطار عمل JS الأساسي لـ WordPress أقل أهمية. أثناء الإجابة على الأسئلة على قناة # core-js ، أوضح Gary Pendergast كيف يمكن بناء Gutenberg للحفاظ على الفصل.
قال بينديرغاست: "أنا لا أمزح عندما أقول إن هذا القرار لا يهم ، حتى بالنسبة للأشخاص المساهمين في جوتنبرج". "في # 2463 ، يتم التعامل مع المكتبة بالكامل كمكتبة مرافق ، تمامًا مثل استخدامنا لوداش ، على سبيل المثال. إنه يؤدي عددًا قليلاً من المهام ، ويمكن سحبه بسهولة نسبيًا واستبداله بشيء مختلف تمامًا ، دون أي تعطيل لبقية قاعدة الكود. بالنسبة للأشخاص الذين يساهمون في Gutenberg ، فهم يساهمون في أسلوب ترميز Gutenberg ، وليس أسلوب أي مكتبة نقوم باستيرادها ".
عندما سئل عن الجدول الزمني لوقت اتخاذ القرار والعوامل التي يتم أخذها في الاعتبار ، أجاب Pendergast أنه لا يوجد جدول زمني وأن المهتمين بالمشاركة يجب أن يدونوا عن تجاربهم ويكتبوا أمثلة للأشياء التي يمكنهم بناؤها باستخدام أطر عمل JS. على دراية.
قال بندرغاست: "لا توجد خارطة طريق ولا جدول زمني ، ولا داعي لوجود". "كما ذكر مات ، إنه حقًا مجرد قرار تقني - القرار المهم للمجتمع الأوسع هو اختيار" عدم التفاعل ". لسوء الحظ ، فقد تم تضخيم هذا القرار بطريقة غير متناسبة ، وتم الخلط بشدة مع "ما مكتبة JS التي سأكون قادرًا على بناء الإضافات الخاصة بي بها؟" وأحيانًا "ما هي ممارسات مكتبة JS التي ستشبه كتل جوتنبرج؟" ، ولا يرتبط أي منهما. التغريدات والمشاركات التي تتعامل معها كسباق خيل ليست مفيدة بهذه الطريقة ".
قال Pendergast إن أي مكتبة يتم تحديدها "ستستمر في الالتفاف بواسطة عنصر WordPress ، ولن يتم الكشف عن المكتبة الأساسية." يعمل فريق Gutenberg على إزالة جميع تبعيات المكتبة من مكوناتها حتى يتمكن مطورو المكونات الإضافية من استخدام أي مكتبة يختارونها.
ومع ذلك ، فإن أعضاء المجتمع الآخرين ليسوا متحمسين جدًا لإبعاد مكتبة JS المختارة للأساسية إلى قرار تقني بسيط أو مكتبة أدوات مساعدة.
قال كيفن هوفمان: "يفهم معظم المطورين أن المكونات الإضافية الخاصة بهم ليست ملزمة بإطار العمل المختار لـ core / Gutenberg". لكن هذا لا يقلل من أهمية القرار. إذا أردنا تشجيع المزيد من المساهمين ، فسيتم خدمتنا جيدًا لاختيار إطار عمل تشعر فيه الغالبية العظمى بالقدرة والثقة. إذا كانت هذه الغالبية تعمل على تطوير المكونات الإضافية مع إطار عمل واحد وتعين عليها تعلم آخر من أجل المساهمة في الأساسي ، فإننا نحد من عدد المساهمين المحتملين. "
يؤكد Peter Booker أنه بغض النظر عن مدى أناقة فصل Gutenberg ، فإن امتلاك فهم جيد للمكتبة المختارة للنواة يؤثر على قدرة المطورين على استكشاف مشكلات معينة وإصلاحها بعمق.
قال بوكر: "لا أعتقد أننا يجب أن نتجاهل هذا الاختيار باعتباره قرارًا تقنيًا بسيطًا". "يعد فهم كيفية عمل PHP و JavaScript و Backbone (من بين أشياء أخرى) أمرًا ضروريًا لتتمكن من تصحيح أخطاء WordPress بشكل صحيح. سيؤثر إطار عمل JS الذي تم اختياره لـ Gutenberg على عدد كبير جدًا من الأشخاص ، حتى لو لم نكن مساهمين أساسيين. ستكون المعرفة الأساسية لتكون قادرًا على استكشاف المشكلات وإصلاحها بشكل كامل. هذا قرار سيؤثر على عدد أكبر بكثير من الأشخاص من مجرد فريق جوتنبرج ".

ما هي الآثار المترتبة على توفير نهج مرن يحيادي إطار العمل لبناء Gutenblocks؟
سأل جيسون باهل عما إذا كان أي شخص قد حاول مزج React و Preact و Vue و Angular في تطبيق واحد لمعرفة ما إذا كان ذلك "وصفة لكابوس الأداء". لقد طرح مثالًا للسيناريو حيث تبني Gravity Forms Gutenblocks المستندة إلى Vue ، ولدى Yoast كتل قائمة على React ، و WooCommerce يبني الكتل مع Preact ، ويستخدم ملحق آخر Ember.
قال باهل: "يبدو من الجيد أن تكون مرنًا وأن تسمح للأشخاص باستخدام أي شيء ولكن أيضًا قد يؤدي إلى الكثير من الانقسام حول أفضل الممارسات ، وربما مشكلات الأداء". "سنرى برامج تعليمية منبثقة حول كيفية إنشاء Gutenblocks في Vue ، و React ، و Preact ، و Ember ، و Vanilla JS ، وما إلى ذلك ، والتي سيكون من الرائع رؤيتها ، ولكنها أيضًا مربكة وقد تتسبب في مزيد من الانقسام في المجتمع وأفضل الممارسات المقبولة . المرونة جيدة إلى حد ما ، ولكن الرأي القوي على مستوى ما هو أيضًا جيد ".
يؤكد كارل هانكوك ، المؤسس المشارك لشركة Gravity Forms ، أن تقديم نهج حيادي لإطار العمل لبناء Gutenblocks سيكون له تأثير ضئيل على المطورين الذين يقومون بتوسيع المشروع. لا يمكن أن يكون القرار أقل أهمية من خلال تقديم المزيد من المرونة ، لأن المطورين سيتبنون حتمًا أيًا من الاستخدامات الأساسية لـ WordPress.
قال هانكوك: "سينتهي الأمر بالناس إلى تبني أي استخدامات أساسية للجزء الأكبر على الرغم من أقواس قزح والفراشات التي يدعي البعض أنها تتعلق بإنشاء طبقة تجريد بحيث يمكن لمطوري المكونات الإضافية / السمات استخدام ما يريدون". "وهو ما يعني أنه مهما كان التعقيد الذي ينتهي به إطار العمل الأساسي سيكون له تأثير مباشر على حاجز الدخول لمطوري المكونات الإضافية والقوالب. كان هذا الحاجز أمام الدخول منخفضًا تاريخيًا حتى الآن ومساهمًا مباشرًا في نمو WordPress باعتباره CMS مستضافة ذاتيًا. إن رفع هذا الحاجز بشكل كبير ليس بالضرورة أمرًا سيئًا. على سبيل المثال ، ستستخدم Gravity Forms Preact و Vue وأيًا كان ، لأن لدينا القوة البشرية ومجموعة المهارات للقيام بذلك عندما نقرر أخيرًا القيام بذلك بمجرد أن يتخذ Core قراره ".
فرصة WordPress لتطوير الويب
يعمل WordPress حاليًا على تشغيل 28 ٪ من جميع مواقع الويب ، وفقًا لـ W3 Techs ، وأي إطار عمل يختاره سيكون له تأثير كبير على المكتبة التي يقرر العديد من المطورين التعلم من أجل توسيع البرنامج وتعزيز حياتهم المهنية.
شجع Matias Ventura ، أحد القادة التقنيين في مشروع Gutenberg ، المشاركين في المناقشة على النظر إلى الصورة الأكبر واغتنام الفرصة للعمل معًا والتعاون في إيجاد حل لـ WordPress من شأنه أن ينهض بالويب. تقف جهود الفريق للتعاون مع ممثلين من الأطر المتنافسة منفصلة في نظام بيئي مجزأ ومشتت بشكل عام.
قال Ventura "أنا متحمس للفرصة التي لدينا لتطوير الويب من حيث تمثيل JavaScript UI ، بطريقة مشابهة لكيفية أن WordPress كان قوة دافعة لمعايير الويب خلال العقد الماضي". "هذا أيضًا هو المكان الذي أرى فيه أننا نتحمل مسؤولية كمشروع ، حيث سيستمر الناس في تعلم تطوير الويب من خلال WP. تعرّف العديد من الأشخاص على PHP من خلال WordPress ، حيث كانوا يتفاعلون في الأصل مع وظائف WP وواجهات برمجة التطبيقات ، وفي النهاية يتعمقون أكثر في اللغة حسب الحاجة. أرى أن جوهرنا يظل قريبًا من لغة JS ، حيث يوفر ذلك الأداة الأكثر أهمية للتعلم ، والتي تمتد عبر جميع الأطر والمكتبات. "
أكد Ventura للمشاركين في المناقشة الجارية أن فريق Gutenberg يستمع ويعمل من أجل حل من شأنه دفع الويب إلى الأمام.
قال فينتورا: "نحن ندرك تمامًا أن كيفية البناء وما نقدمه من خلال Gutenberg سيؤثر على مجتمع المطورين ولا نتعامل مع هذا باستخفاف - بل على العكس تمامًا". "لقد تحدثت مع Evan (Vue) و Jason (Preact) لأنه بدلاً من وجود مسابقة" اختر إطار العمل الخاص بك "، يبدو أن هذه فرصة للتعاون ودفع الويب إلى الأمام."
