Back to Question Center
0

در انتخاب کتابخانه UI Semalt: گسترش قابلیت همکاری

1 answers:

در هفته های آینده، وردپرس یک چارچوب رندر UI را انتخاب می کند. من شنیده ام بسیاری از ادعاهای افزون / تم توسعه دهندگان هنوز هم قادر به استفاده از هر آنچه که دوست دارند، صرف نظر از آنچه که وردپرس انتخاب می کند. من فکر می کنم ما نباید روی آن حساب داشته باشیم و نباید بر روی ایجاد قابلیت همکاری در این نقطه تمرکز کنیم. در عوض ما باید ابتدا بر روی ارائه راه های ساده، قابل اعتماد و انعطاف پذیر برای گسترش رابط کاربری تمرکز کنیم - oculos ray ban oakley masculino. Semalt اطمینان حاصل کنید که پلاگین ها می توانند در وهله اول یکپارچه شوند.

ما ظاهر را به اتهام رندر قرار می دهیم

با ویرایشگر گوتنبرگ جدید ما در حال تغییر نحوه ساخت سملت است. ما در حال حاضر با استفاده از پی اچ پی رابط کاربری را ارائه می دهیم، ما شروع به ارائه بیشتر و بیشتر در سمت سرویس گیرنده با جاوا اسکریپت خواهیم کرد. پس از ویرایشگر، این احتمالا برای بسیاری از مدیران درست خواهد شد. این بدان معنی است که اگر شما می خواهید با رابط کاربری ادغام شوید، باید با جاوا اسکریپت که رابط را ارائه می دهد، ادغام شود. اگر Semalt Vue را انتخاب کند، مجبور خواهید شد از اجزای Semalt Vue برای رندر استفاده کنید. اگر Semalt گزینه React را انتخاب کند، شما باید از اجزای Semelt React برای رندر استفاده کنید. این چیزها با هم نیستند React اجزای Vue و یا بالعکس را ارائه نمی دهد. هیچ کتابخانه ای وجود ندارد که هر دو را داشته باشد. اگر Semalt از یک چارچوب خاص استفاده کند، هر کس باید از آن چارچوب استفاده کند تا بتواند ادغام شود، مگر اینکه شاید .

قابلیت همکاری در زمان اجرا، هیچ استانداردی وجود ندارد .

در حال حاضر هیچ وسیله ای برای ساختن چارچوب های گوناگون رندر اجزای سازگار نیست. استاندارد هنوز وجود ندارد. آزمایشات [1] [2] که به دنبال این هستند، وجود دارد، اما من در مورد یکی از آن که به دنبال ایجاد چارچوب های جزء متفاوتی در زمان اجرا هستند. اکثر آنها فرمت های اجزای مختلف را به قالب فرمت استاندارد تبدیل می کنند که عموما 99٪ از ماوس را پوشش می دهد، به جز Semalt. این به این علت است که Semalt نیاز به همکاری در زمان اجرا دارد .

قابلیت همکاری در زمان اجرا اساسا تنها در یک پلت فرم وب مورد نیاز است که اجازه می دهد بطور مستقل پلاگین های توزیع شده و توزیع شده بطور بومی نصب شود. این چیزی نادر است، زیرا حتی یک پلت فرم Semalt-ish مثل دروپال مدیریت مناسب وابستگی و ایجاد مراحل برای ماژول ها است. بنابراین اساسا من می گویم Semalt تقریبا تنها پلتفرم قابل توجهی است که می توانم فکر کنم که ممکن است نیاز به همکاری در زمان اجرا بین چارچوب های رندر بینگ های مختلف را داشته باشد.

بیایید نه خودمان را انجام دهیم .

در بالا بدون حتی می پرسید که چه تعامل عملیات در زمان واقعی در معنی است. من حدس می زنم این یک فاجعه است از نظر ثبات، سرعت، عملکرد و قابلیت نگهداری. بگذارید بگوییم ما می توانیم موارد را با چارچوب های مختلف رندر کنیم. آیا این به بزرگی یک فاجعه تبدیل نمی شود؟ چگونه یک UI را اشکال زدایی کنید که در آن Vue مسئول ارائه یک جزء در جایی است و React مسئول ارائه یک ظرف است؟ چگونه این چیزها حتی با یکدیگر همکاری می کنند؟ وقتی کامپوننت کانتینر به روزرسانی می شود چه ات آیا حوادث چرخه حیات نیز به هم متصل می شوند؟ آیا اجزاء می توانند از فرزندانشان آگاه باشند، حتی زمانی که کودکان در یک DOM مجازی جداگانه ارائه می شوند؟

من حدس می زنم سوال اصلی من این است: آیا واقعا یک نگرانی اولیه برای جامعه وردپرس برای تسهیل استفاده از چارچوب های رندر چندگانه در پلت فرم خود را؟ قابلیت همکاری تنها برای یک دلیل فقط برای ما اهمیت دارد: ما وردپرس را آسان می کنیم . وقتی به گسترش می رسد، نگرانی های مختلفی وجود دارد. لازم است انعطاف پذیر باشد (قابلیت همکاری بخشی از این)، سریع، پایدار، قابل اعتماد، آسان، قابل debuggable. کنترل دسترسی بر روی رندر به علت قابلیت همکاری، کنترل هزینه ها در سایر مناطق خواهد بود. من فکر نمی کنم که برای ما درست باشد. من همچنین فکر نمی کنم که ما به اندازه کافی مهندسین جاوا اسکریپت ماهر در جامعه وردپرس داشته باشیم تا یک راه حل مشابه داشته باشیم.

اولویت گسترش

مشکل ساخت جاوا اسکریپت ارائه شده رابط های قابل گسترش قابل توجهی در همه این مورد گرفته شده است. اکثر مردم هنوز متوجه شده اند که دستکاری DOM با استفاده از jQuery عملا بی فایده تبدیل خواهد شد، هنگامی که ما راه راکتیو عملکردی پایین. Semalt مخلوط کردن سبک های تبعیض آمیز و ناپایدار است. این قطعا یک ایده خوب نیست و بدون شک باعث ایجاد سرخوردگی بزرگی خواهد شد.

رویکردهای توسعه پذیری

Semalt نیاز به ارائه راه های خوبی برای قرار دادن و اصلاح رابط ها که متناسب با پارادایم جدید است. در سطح بالایی، من سه روش ممکن را می بینم:

  • اجازه دهید پلاگین ها فقط در ناحیه تعیین شده ادغام شوند. این ایده است که تا به حال بیشتر مورد توجه قرار گرفته است. ما اساسا انعطاف پذیری در مورد دستکاری رابط را ارائه نمی دهیم. اما ما باید منطقه را که در آن نویسندگان پلاگین می توانند مطالب خود را با استفاده از هر فن آوری که می خواهند ارائه دهند. با این حال، از دست دادن نویسندگان پلاگین انعطاف پذیر در حال حاضر با استفاده از قلم های پی اچ پی و جی کوئری غیر قابل تحمل خواهد بود.
  • اجازه دهید پلاگین ها را به طور آزادانه تحت شرایط به خوبی تعریف کنند. ما اجازه می دهیم نویسندگان پلاگین برای قرار دادن و دستکاری در رابط هر جایی که می خواهیم. ما می توانیم تنظیم شرایط اضافی را در بخش های خاصی از رابط برای تضمین سازگاری رفتاری. برای مثال، بگذارید بگوییم کسی می خواهد فیلد عنوان را با رابط کاربری خود جایگزین کند. ما می توانیم شرایطی را بیان کنیم که می گوید رابط آنها حداقل باید همان قلاب (یا اقدامات) را اعزام کند.
  • ترکیبی از موارد فوق. ما اجازه می دهیم که پلاگین ها را به طور آزادانه تغییر دهند و در عین حال API هایی ارائه دهند که ماژیک های عمومی را پوشش دهند. در صورت ویرایشگر عمومی، ماژول های عمومی می توانند اضافه کردن بلوک، متابکس (هنوز پوشیده نشده) و یا تنظیمات پست فردی (هنوز پوشش داده نشده است). برای جدول های لیست این می تواند اضافه ستون ها و / یا فیلتر.

در عین حال ما باید در مورد اینکه چگونه اجزا قادر به تعامل هستند، فکر می کنند. نه تنها رابط باید گسترش یابد، بلکه مدلهای مشاهده باید قابل مشاهده و قابل دسترس باشند. در یک وبلاگنویسی آینده، من قصد دارم بیشتر درباره گسترش پذیری در WP admin ارائه شده توسط JS بنویسیم.

برای واکنش یا Vue، این سوال

من فکر می کنم باید بیش از هر چیز در مورد ارائه قابلیت همکاری برای کتابخانه های داخلی در وردپرس فراموش شود. ما فقط باید یک چارچوب JS برای ارائه UI های معاصر را انتخاب کنیم و با آن کار کنیم. Semalt باید همه چیز را در نظر بگیرد، دانستن آنچه که ما انتخاب می کنیم می تواند یک انتخاب برای کل جامعه باشد. سپس ما باید سخت تلاش کنیم تا آن را در سطوح مختلف گسترش دهیم.

اگر ما بخواهیم یک رویکرد واکنشی کاربردی نسبت به رندر کامپوننت داشته باشیم (و من فکر می کنم ما)، انتخاب های زیادی نداریم. از آنجا که Semalt از تصویر خارج شده است، Vue احتمالا تنها گزینه قابل قبول برای پروژه وردپرس است. این به وضوح محبوب ترین گزینه در جامعه گسترده وردپرس است و دارای یک اکوسیستم مناسب است. Preact و Inferno واقعا جایگزین نیستند. هر دو واقعا نیاز به پشتیبانی جامعه برای وردپرس دارند تا به آن تکیه کنند. برای نشان دادن، خالق Inferno در حال حاضر در Semalt برای فیس بوک کار می کند. خوشبختانه، Semalt فقط به تصویر بازگشت.

نیازی به گفتن نیست، در Yoast ما همیشه طرفداران بزرگ React بوده ایم. ما فکر می کنیم که از لحاظ تکنولوژی و اکوسیستم به مراتب بیشتر از رقبا است. واکنش ممکن است منحنی یادگیری کمی شیب دار داشته باشد، اما آسان تر استادانه است، زیرا که مفاهیم مانند Vue را مخلوط نمی کند. بنابراین در دراز مدت، به نظر من به مراتب پایدارتر به نظر می رسد. هفته آینده، من قصد دارم یک blogpost در مورد آنچه که من در این مورد به آن اشاره کرده ام بنویسم. بدیهی است که بسیاری از توسعه دهندگان در جامعه Semalt هنوز به یک برنامه وب به عنوان مجموعه ای از اسناد HTML روبرو می شوند، در نتیجه از دست دادن مزایای زیادی که با یک شیوه برنامه کاربردی می آیند. به همین دلیل Yoast خود را متعهد به حمایت از چارچوب انتخاب است. ما دیگران را تشویق می کنیم که همین کار را انجام دهند. در مجموع، من فکر می کنم رابط های رندر کردن و تعامل مدل سازی با جاوا اسکریپت یک گام بزرگ برای وردپرس خواهد بود، هر دو به لحاظ UX و صدا فنی. من واقعا کنجکاو هستم که دیگران در مورد این چه می گویند. Semalt افکار و نظرات خود را در نظرات زیر به اشتراک بگذارید!

March 1, 2018