Window.pipedriveLeadboosterConfig = { القاعدة: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', الإصدار: 2, } ؛(الدالة () { var w = نافذة إذا كان (w.LeadBooster) { console.warn('LeadBooster موجود بالفعل') } وإلا { { w.LeadBooster = { q: [], على: دالة (ن، ح) { { هذا.q.push({ t: 'o'، n: n، n: n، h: h }) }, الزناد: الدالة (n) { هذا.q.push({ t: 't'، n: n: n }) }, } } })() وحدات Ruby on Rails مع Packwerk الحلقة الأولى - The Codest
The Codest
  • نبذة عنا
  • الخدمات
    • تطوير البرمجيات
      • تطوير الواجهة الأمامية
      • تطوير الواجهة الخلفية
    • Staff Augmentation
      • مطورو الواجهة الأمامية
      • مطورو الواجهة الخلفية
      • مهندسو البيانات
      • مهندسو السحابة
      • مهندسو ضمان الجودة
      • أخرى
    • استشاري
      • التدقيق والاستشارات
  • الصناعات
    • التكنولوجيا المالية والمصرفية
    • E-commerce
    • أدتك
    • التكنولوجيا الصحية
    • التصنيع
    • الخدمات اللوجستية
    • السيارات
    • إنترنت الأشياء
  • القيمة مقابل
    • CEO
    • CTO
    • مدير التوصيل
  • فريقنا
  • دراسات الحالة
  • اعرف كيف
    • المدونة
    • اللقاءات
    • ندوات عبر الإنترنت
    • الموارد
الوظائف تواصل معنا
  • نبذة عنا
  • الخدمات
    • تطوير البرمجيات
      • تطوير الواجهة الأمامية
      • تطوير الواجهة الخلفية
    • Staff Augmentation
      • مطورو الواجهة الأمامية
      • مطورو الواجهة الخلفية
      • مهندسو البيانات
      • مهندسو السحابة
      • مهندسو ضمان الجودة
      • أخرى
    • استشاري
      • التدقيق والاستشارات
  • القيمة مقابل
    • CEO
    • CTO
    • مدير التوصيل
  • فريقنا
  • دراسات الحالة
  • اعرف كيف
    • المدونة
    • اللقاءات
    • ندوات عبر الإنترنت
    • الموارد
الوظائف تواصل معنا
السهم الخلفي العودة إلى الوراء
2022-01-05
تطوير البرمجيات

Ruby on Rails نمذجة Ruby on Rails مع Packwerk الحلقة الأولى

نيكولاس نيسوريا

يجد البشر صعوبة في رؤية الصورة الكبيرة للمشكلة دون تكريس الكثير من الوقت والجهد. يحدث هذا بشكل خاص أثناء العمل مع التطبيقات الكبيرة والمعقدة. ما هي الآثار الجانبية للتغييرات التي أجريتها؟ لماذا يؤثر هذا السطر هنا على اختبارات جزء بعيد من قاعدة التعليمات البرمجية؟ لا يوجد حل مثالي أو كامل للمشكلة، لكن Shopify خرجت بأداة ربما تساعدك أنت وفريقك.

مقدمة

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

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

المشاكل

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

  • تماسك منخفض,
  • اقتران عالٍ,
  • كود السباغيتي

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

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

باكويرك

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

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

ما هي الحزمة؟

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

  • يجب أن تكون الحزم مقترنة ببعضها البعض بشكل فضفاض نسبياً.

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

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

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

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

اختر المشروع

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

تهيئة Packwerk

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

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

  • Packwerk.yml

  • الحزمة.yml

  • تصريفات.yml

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

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

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

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

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

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

  • الاسم: اسم الحزمة هو مسارها النسبي من جذر
    التطبيق.

  • المحتوى: عندما نضع الحزمة.yml في مجلد، فإن جميع الملفات الموجودة في المجلد هي الآن محتوى الحزمة.

  • التبعيات: يمكننا تعريف التبعيات على الحزم الأخرى بإضافة مفتاح التبعيات إلى الحزمة.yml.

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

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

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

قراءة المزيد

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

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

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

مقالات ذات صلة

تطوير البرمجيات

إنشاء تطبيقات ويب مستقبلية: رؤى من فريق خبراء The Codest

اكتشف كيف تتفوق شركة The Codest في إنشاء تطبيقات ويب تفاعلية قابلة للتطوير باستخدام أحدث التقنيات، وتقديم تجارب مستخدم سلسة عبر جميع المنصات. اكتشف كيف تقود خبرتنا التحول الرقمي والأعمال التجارية...

ذا كوديست
تطوير البرمجيات

أفضل 10 شركات لتطوير البرمجيات في لاتفيا

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

thecodest
الحلول المؤسسية وحلول التوسعة

أساسيات تطوير برمجيات جافا: دليل للاستعانة بمصادر خارجية بنجاح

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

thecodest
تطوير البرمجيات

الدليل الشامل للاستعانة بمصادر خارجية في بولندا

إن الطفرة في outsourcing في بولندا مدفوعة بالتقدم الاقتصادي والتعليمي والتكنولوجي، مما يعزز نمو تكنولوجيا المعلومات والمناخ الملائم للأعمال.

ذا كوديست
الحلول المؤسسية وحلول التوسعة

الدليل الكامل لأدوات وتقنيات تدقيق تكنولوجيا المعلومات

تضمن عمليات تدقيق تكنولوجيا المعلومات وجود أنظمة آمنة وفعالة ومتوافقة. تعرف على المزيد حول أهميتها من خلال قراءة المقال كاملاً.

The Codest
ياكوب جاكوب جاكوبوفيتش CTO وشريك مؤسس CTO

اشترك في قاعدة معارفنا وابقَ على اطلاع على آخر المستجدات في قطاع تكنولوجيا المعلومات.

    نبذة عنا

    The Codest - شركة دولية لتطوير البرمجيات لها مراكز تقنية في بولندا.

    المملكة المتحدة - المقر الرئيسي

    • المكتب 303 ب، 182-184 شارع هاي ستريت نورث E6 2JA
      لندن، إنجلترا

    بولندا - مراكز التكنولوجيا المحلية

    • مجمع مكاتب فابريتشنا المكتبي، أليجا
      بوكوجو 18، 31-564 كراكوف
    • سفارة الأدمغة، كونستروكتورسكا
      11, 02-673 02-673 وارسو، بولندا

      The Codest

    • الصفحة الرئيسية
    • نبذة عنا
    • الخدمات
    • دراسات الحالة
    • اعرف كيف
    • الوظائف
    • القاموس

      الخدمات

    • استشاري
    • تطوير البرمجيات
    • تطوير الواجهة الخلفية
    • تطوير الواجهة الأمامية
    • Staff Augmentation
    • مطورو الواجهة الخلفية
    • مهندسو السحابة
    • مهندسو البيانات
    • أخرى
    • مهندسو ضمان الجودة

      الموارد

    • حقائق وأساطير حول التعاون مع شريك خارجي لتطوير البرمجيات
    • من الولايات المتحدة الأمريكية إلى أوروبا: لماذا تقرر الشركات الأمريكية الناشئة الانتقال إلى أوروبا؟
    • مقارنة مراكز تطوير التكنولوجيا في الخارج: تك أوفشور أوروبا (بولندا)، آسيان (الفلبين)، أوراسيا (تركيا)
    • ما هي أهم التحديات التي تواجه CTOs ومديري تكنولوجيا المعلومات؟
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • شروط استخدام الموقع الإلكتروني

    جميع الحقوق محفوظة © 2025 بواسطة The Codest. جميع الحقوق محفوظة.

    arArabic
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek arArabic