جایی که ماجرا کمی فنی می‌شود: چگونه نسخه خود از نگاشت شورت‌کد را محقق کردیم

نوشته شده توسط

در

,

How-We-Made-Our-Version-Of-Shortcode-Mapping-Happen-2در مقاله قبلی، اصول نگاشت کد کوتاه و نحوه دسترسی به مزایای فوق‌العاده آن را بررسی کردیم. ما تصمیم گرفتیم مقاله‌ای را که به نسخه نگاشت کد کوتاه در Page Builder Sandwich می‌پردازد جدا کنیم، زیرا نوشته پیش‌رو ممکن است کمی فنی‌تر شود.

در ادامه، توضیحات عمیق‌تری درباره سازوکار داخلی قابلیت نگاشت کد کوتاه ما و چگونگی به کار انداختن آن آورده شده است.

یک فرآیند خودکار

برای تصمیم‌گیری درباره اینکه کدام افزونه‌ها در نگاشت‌کننده کد کوتاه گنجانده شوند، یک اسکریپت خودکار ساختیم که افزونه‌های برتر را بر اساس معیارهای زیر از مخزن افزونه‌های وردپرس جمع‌آوری می‌کند:

  • در میان ۱٬۰۰۰ افزونه محبوب، دارای بالاترین امتیاز و به‌روزرسانی‌شده،
  • دارای حداقل ۴٬۰۰۰ نصب فعال،
  • دارای حداقل ۲۰ رای، و؛
  • دارای میانگین امتیاز حداقل ۳ ستاره

ما این کوئری را به‌صورت روزانه در مخزن افزونه‌های وردپرس اجرا می‌کنیم. این فیلترها تضمین می‌کنند که لیستی از افزونه‌های باکیفیت که افراد زیادی از آن‌ها استفاده می‌کنند به دست آوریم. در زمان نگارش این مطلب، این معیارها منجر به ۸۰۰ افزونه شد. این رقم زیادی است. واقعاً زیاد.

برخی از محبوب‌ترین افزونه‌های شناسایی‌شده برای نگاشت کد کوتاه.
برخی از محبوب‌ترین افزونه‌های شناسایی‌شده برای نگاشت کد کوتاه.

سپس مجموعه‌ای از بررسی‌های خودکار را روی سورس‌کد هر افزونه اجرا می‌کنیم تا مشخص شود آیا حاوی کدهای کوتاه هست یا خیر، و سپس سعی می‌کنیم تمام آن کدهای کوتاه را به همراه تمام ویژگی‌هایشان پیدا کنیم. با پردازش داده‌ها، این کار منجر به شناسایی بیش از ۲٬۰۰۰ کد کوتاه شد. واقعاً شگفت‌انگیز است. کدهای کوتاه شناسایی‌شده سپس برای بررسی دستی وارد پایگاه داده نگاشت کد کوتاه می‌شوند.

در پایان این فرآیند، ما با لیست عظیمی از افزونه‌ها و کدهای کوتاه احتمالی آن‌ها روبه‌رو خواهیم بود. اکنون نوبت به پاک‌سازی این داده‌ها می‌رسد تا مطمئن شویم همه چیز درست است.

یک فرآیند دستی

احتمالاً این سخت‌ترین بخش از کل سیستم نگاشت است. کدهای افزونه در اَشکال و اندازه‌های مختلفی عرضه می‌شوند؛ همه کدهای کوتاه به طور خودکار توسط اسکریپت‌های ما شناسایی نمی‌شوند. با اینکه مستندات وردپرس (WordPress Codex) می‌گوید برای فیلتر کردن ویژگی‌های کد کوتاه از تابع `shortcode_atts` استفاده شود، اما این صرفاً یک توصیه است و همه آن را رعایت نمی‌کنند. همچنین هیچ روش قطعی و مطمئنی برای بررسی اجزای داخلی یک کد کوتاه در زمان نصب یک افزونه وجود ندارد.

بنابراین برای اطمینان از اینکه همه کدهای کوتاه و ویژگی‌هایشان را درست دریافت کرده‌ایم، یک بخش فرانت‌اند اختصاصی برای ویرایش کدهای کوتاه و ویژگی‌ها ایجاد کردیم که با استفاده از AngularJS و Bootstrap ساخته شده است.

رابط کاربری Bootstrap و AngularJS برای اصلاح تمام کدهای کوتاه نگاشت‌شده.
رابط کاربری Bootstrap و AngularJS برای اصلاح تمام کدهای کوتاه نگاشت‌شده.

ما باید تک‌تک افزونه‌ها را به صورت دستی بررسی کنیم، مستندات کدهای کوتاه آن‌ها را چک کنیم و مطمئن شویم تمام داده‌هایی که داریم صحیح هستند.

اگرچه این کار به‌شدت طاقت‌فرسا و خسته‌کننده است، اما داشتن یک فرآیند خودکار نکات مثبتی نیز دارد:

  • بر اساس آمارهای اولیه ما، تنها حدود ۱ افزونه از هر ۲ افزونه دارای کد کوتاه است.
  • نیمی از کدهای کوتاه شناسایی‌شده هیچ ویژگی‌ای ندارند (هرچند بخشی از این موارد ممکن است مثبت کاذب باشد)
  • با انتخاب افزونه‌های باکیفیت، به احتمال زیاد آن‌ها دارای مستندات کد کوتاه هستند

تنها زمانی که تمام کدهای کوتاه یک افزونه بررسی شدند، سرور شروع به توزیع نگاشت‌های کد کوتاه آن افزونه بین کاربران می‌کند.

یک فراخوانی Rest API

آخرین قطعه این پازل، خود افزونه است. ایده در اینجا ساده است: بررسی کنید چه افزونه‌هایی فعال هستند، سایت از چه قالبی استفاده می‌کند و چه کدهای کوتاهی در دسترس هستند، سپس از پایگاه داده نگاشت کد کوتاه بپرسید که آیا نگاشتی برای آن‌ها دارد یا خیر. برای این منظور، یک نقطه پایانی (Endpoint) سفارشی در WP REST API ایجاد کردیم که تمام کلاینت‌ها برای دریافت آخرین نگاشت‌های کد کوتاه خود به آن متصل می‌شوند.

آینده: جمع‌سپاری (Crowdsourcing)

بررسی دستی هر افزونه مستلزم صرف زمان و تلاش زیادی است. به محض اینکه پلتفرم نگاشت کد کوتاه به پایداری برسد، قصد داریم امکان نگاشت کد کوتاه را برای همه باز کنیم. این یعنی هر کسی می‌تواند در اضافه کردن کدهای کوتاه مشارکت داشته باشد.

شاید فکر کنید: «چرا باید در نگاشت کدهای کوتاه کمک کنم؟ چه سودی برای من دارد؟» خوب، چند دلیل به ذهن می‌رسد که چرا افراد ممکن است مایل به کمک باشند:

  1. اگر افزونه‌ای ساخته‌اید و ما به دلیل معیارهای بالا هنوز آن را ثبت نکرده‌ایم (و در مخزن افزونه‌های وردپرس قرار دارد)، می‌توانید خودتان نگاشت‌ها را اضافه کنید. افزونه شما به‌طور کامل توسط PBS پشتیبانی خواهد شد!
  2. از آنجا که ما در فرآیند خودکار فقط با افزونه‌های موجود در مخزن وردپرس سر و کار خواهیم داشت، سازندگان افزونه‌ها و قالب‌های پریمیوم مشمول آن نمی‌شوند. بنابراین اگر چنین افزونه یا قالبی دارید، می‌توانید نگاشت‌های کد کوتاه را برای آن‌ها نیز انجام دهید.
  3. و برای افرادی که سازنده افزونه نیستند، می‌توانیم به کسانی که کمک می‌کنند پاداش دهیم. برای اینکه نگاشت کد کوتاه به تلاشی جذاب تبدیل شود، می‌توانیم به همراهان مهربان، یک لایسنس شخصی یا ارتقا به لایسنس پریمیوم PBS پاداش دهیم!

عضویت در خبرنامه ما

قابلیت نگاشت کد کوتاه به احتمال زیاد در تاریخ ۱۲ اوت  ۱۵ اوت  ۱۶ اوت ۲۰۱۶ برای مشتریان ما عرضه خواهد شد. تا این زمان، همه کدهای کوتاه نگاشت نخواهند شد (تخمین ما شاید ۱۰۰ افزونه باشد)، اما فرآیند نگاشت به طور مداوم انجام خواهد شد و مشتریان به محض ارائه موارد جدید، آن‌ها را دریافت خواهند کرد.

در خبرنامه ما عضو شوید تا از اخبار مربوط به نگاشت کد کوتاه، زمان انتشار آن، و زمانی که نگاشت کد کوتاه را برای عموم باز می‌کنیم، مطلع شوید!