(الدالة(w,d,s,l,i) {w[l]=w[l]||[l]؛ w[l].push({'gtm.start': Date().getTime()، الحدث:'gtm.js'})؛ var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'؟'&l='+l:''؛ j.async=true;j.src='j.src 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); }))) (نافذة، مستند،'البرنامج النصي'،'dataLayer'،'GTM-5LHNRP9'); thecodest، المؤلف في The Codest - صفحة 9 من 13

مقدمة

من أجل التحدث عن باكويرك، نحتاج إلى تقديم بعض المفاهيم أولاً.

المشاكل

كما نعلم روبي لا يوفر حلًا جيدًا لفرض حدود الشيفرة. يمكننا تحديد الرؤية ولكن سيتم تحميل جميع التبعيات في مساحة الأسماء العامة. في التطبيقات الكبيرة أو المتجانسة ينتج عن عدم وجود حدود المشاكل التالية.

في محاولة لتوحيد نظام Shopify المترابط وفرض الحدود، جربوا حلولاً مختلفة دون تحقيق النتائج المتوقعة:
- تعيين الثوابت الخاصة,
- وضع الحدود من خلال الأحجار الكريمة,
- استخدام الاختبارات لمنع الارتباطات المتقاطعة بين المكونات,
- استخدام جوهرة التعديل في روبي,
- إنشاء الخدمات المصغرة.

ومع كل المعرفة التي اكتسبوها من المحاولات السابقة، قرروا إنشاء أداتهم الخاصة: باكويرك.

باكويرك

ما هي باكويرك؟

باكويرك هي أداة تحليل ثابتة تُستخدم لفرض الحدود بين مجموعات روبي الملفات المسماة الحزم.

ما هي الحزمة؟

A الحزمة هو مجلد يحتوي على شيفرة محملة تلقائيًا. Shopify's الفريق يشجع على استخدام أفضل ممارسات التصميم أثناء إنشاء الحزم.
- يجب أن نجمع الأشياء ذات الوظائف العالية معًا التماسك,

أنواع فحوصات الحدود

يمكننا فرض الخصوصية وحدود التبعية، والتحقق من انتهاكات الحدود والتبعيات الدورية.

باكويرك في الممارسة العملية

لا توجد طريقة واحدة محددة لهيكلة أو إعادة هيكلة تطبيقك أثناء إنشاء الحزم. في هذه المقالة، سوف نتبع الطريقة المقترحة من قبل
ستيفان هاجمان في النمذجة التدريجية لروبي على القضبان.

اختر المشروع

يمكنك إنشاء المشروع أو اختر أحد مشاريعك. قررت استخدام مشروع مفتوح المصدر يسمى كود الفرز. من المهم أن نذكر أننا بحاجة إلى تطبيق Rails 6 نظرًا لأن باكويرك يستخدم زيتويرك.

تهيئة Packwerk

أولاً، نحتاج إلى إضافة الأحجار الكريمة إلى ملف الأحجار الكريمة الخاص بنا مثل جوهرة 'باكويرك' ثم قم بتشغيل الحزمةفي وحدة التحكم. ثم نحن مستعدون لتهيئة الجوهرة التي تعمل بدء باكويرك.

بعد ذلك، نلاحظ أن باكويرك أنشأ ثلاثة ملفات ل لنا:

Packwerk.yml هو ملف التكوين الخاص ب باكويرك حيث سنقوم بتعريف الملفات المضمنة والمستثناة، وسرد مسارات التحميل، وتعريف ملف الانعطافات، من بين أمور أخرى;

الحزمة.yml هو ملف التكوين الخاص بالحزمة. في هذا الملف، سنضيف التكوين لحدود الحزمة الخاصة بنا. أي مجلد يحتوي على package.yml سيتم التعرف عليه كحزمة بواسطة باكويرك. هذا كل شيء, باكويرك أنشأنا أول
حزمة ونطلق عليها اسم الجذر الحزمة.

تصريفات.yml هو المكان الذي سنضع فيه تصريفاتنا واختصاراتنا المخصصة في حالة استخدامنا لها.

يمكنك العثور على المزيد حول الملفات وتكوينها في
باكويرك.

خصائص باكويرك

لكي تنجح النمذجة نحتاج إلى ثلاث خصائص أساسية: حاوية مسماةفإن المحتوىوالصريح التبعيات على أخرى الحاويات. لذا دعونا نعرّف هذه الخصائص في باكويرك:

الملف الآخر الذي لا يتم تضمينه افتراضيًا ولكن يوصى به هو README. من المهم توفير معلومات حول استخدام الحزمة.

نهاية الحلقة الأولى

استشارات تطوير المنتجات الرقمية

قراءة المزيد

GraphQL روبي. ماذا عن الأداء؟

السكك الحديدية ووسائل النقل الأخرى

تطوير القضبان باستخدام TMUX و Vim و Fzf + Ripgrep

arArabic