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 }) }, } } })() مراجعة TheCodestReview #5 - عصير هندسة البرمجيات نصف الأسبوعي - The Codest
The Codest
  • نبذة عنا
  • الخدمات
    • تطوير البرمجيات
      • تطوير الواجهة الأمامية
      • تطوير الواجهة الخلفية
    • Staff Augmentation
      • مطورو الواجهة الأمامية
      • مطورو الواجهة الخلفية
      • مهندسو البيانات
      • مهندسو السحابة
      • مهندسو ضمان الجودة
      • أخرى
    • استشاري
      • التدقيق والاستشارات
  • الصناعات
    • التكنولوجيا المالية والمصرفية
    • E-commerce
    • أدتك
    • التكنولوجيا الصحية
    • التصنيع
    • الخدمات اللوجستية
    • السيارات
    • إنترنت الأشياء
  • القيمة مقابل
    • CEO
    • CTO
    • مدير التوصيل
  • فريقنا
  • دراسات الحالة
  • اعرف كيف
    • المدونة
    • اللقاءات
    • ندوات عبر الإنترنت
    • الموارد
الوظائف تواصل معنا
  • نبذة عنا
  • الخدمات
    • تطوير البرمجيات
      • تطوير الواجهة الأمامية
      • تطوير الواجهة الخلفية
    • Staff Augmentation
      • مطورو الواجهة الأمامية
      • مطورو الواجهة الخلفية
      • مهندسو البيانات
      • مهندسو السحابة
      • مهندسو ضمان الجودة
      • أخرى
    • استشاري
      • التدقيق والاستشارات
  • القيمة مقابل
    • CEO
    • CTO
    • مدير التوصيل
  • فريقنا
  • دراسات الحالة
  • اعرف كيف
    • المدونة
    • اللقاءات
    • ندوات عبر الإنترنت
    • الموارد
الوظائف تواصل معنا
السهم الخلفي العودة إلى الوراء
2021-02-02
تطوير البرمجيات

مراجعة TheCodestReview #5 - عصير هندسة البرمجيات نصف الأسبوعي

The Codest

كامل فيرينز

رئيس قسم النمو

كان من المخطط نشر هذه الحلقة في شهر ديسمبر قبل عطلة عيد الميلاد، لذا يبدو أنني أنا المسؤول عن التأخير. لقد ظللت أؤخر النشر أسبوعًا بعد أسبوع بسبب بعض المهام ذات الأولوية القصوى التي اعترضت طريقي، ولكن اليوم هو اليوم المنتظر.

أنا مشغول بالقيام بأشياء أخرى PPC الرئيسي GIF من صور GIF لـ Imbusydoingstuffs

في الحلقة الماضية كنت قد أثرت التعليق على المقال الذي يتناول أهمية الفكاهة في مكان العمل، ولكن في الوقت نفسه اكتشفت أنه يستحق المزيد من التقدير لذلك سأكتب مقالة كاملة عنه قريباً (تقريباً).    

IPعِدني أن تصدقني GIF من Ipromiseyou GIFs

الأشياء التي شغلتني خلال الأسبوعين الماضيين: 

أ) بدأت قبل عيد الميلاد بحلقة أولى من سلسلة الندوات عبر الإنترنت "Bulletproof CTO" (ترقبوا الحلقة الثانية في شهر فبراير التي ستعرض برنامج SaaS CTOs، التفاصيل في وقت قريب على موقع LinkedIn الخاص بي).

ب) ضبط خطة النمو الخاصة بنا لعام 2021 بهدف تجاوز أعمالنا الأساسية في روبي وJS وتنمية ماجينتو و المنتج كفاءة التصميم في المنزل.

كفى ترويجاً للذات، اسمحوا لي أن أدعوكم إلى الحلقة الخامسة من سلسلة #heCodestReview. 

مواضيعي الفريق قد أعدت لهذا الوقت: 

  1. بنية واجهة أمامية قابلة للتطوير والصيانة.
  2. الالتزامات التقليدية.
  3. تحديثات إصدار روبي 3.0.0 روبي 3.0.

يتم تسليم التعليقات على تطبيق الواجهة الأمامية والالتزامات التقليدية هذا الأسبوع من قبل مهندسي React لدينا بينما يتم تسليم روبي 3.0.0 من قبل فريق أحلام روبي لدينا.

اليوم الكثير من المطورين لتوفير الوقت يستخدمون مكتبات واجهة المستخدم والمكونات القابلة لإعادة الاستخدام. إنها ممارسة جيدة وتساعدنا على توفير الكثير من الوقت ولكن عندما يكون لدينا المشروع يصبح أكبر - سوف تفهم أنه لا يكفي التعامل مع الكود.

هناك نمطين جيدين من التطوير الخلفي - التطوير المدفوع بالمجال (DDD) وفصل الاهتمامات (SoC). يمكننا أيضًا استخدامها في بنية الواجهة الأمامية.

في DDD، نحاول في DDD تجميع الميزات المتشابهة وفصلها قدر الإمكان عن المجموعات الأخرى (الوحدات النمطية).

بينما مع SoC، على سبيل المثال، نفصل بين المنطق وطرق العرض ونماذج البيانات (على سبيل المثال باستخدام نمط تصميم MVC أو MVVM).

هناك الكثير من الممارسات والأنماط الجيدة لاستخدامها ولكن هذه الطريقة هي المفضلة بالنسبة لي.

عندما نستخدم هذا النمط سنحصل على هذه الصورة:

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

ولدينا هذا الهيكل:

مجلد التطبيق - طبقة التطبيق

الأصول - مجلد للصور والخطوط والأيقونات وما إلى ذلك.

المكونات - يجب أن تكون هنا مكونات لإعادة الاستخدام لا تحتوي على منطق معقد

التهيئة - هنا سنخزن الحالة العامة

lib - مجلد للوظائف المعقدة وحساب المنطق

الوحدات النمطية - إليك وحداتنا النمطية

pubs - مكان لتخزين المخططات لوصف بنية البيانات.

الأنماط - لرمز css/ssss لدينا

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

إذا نظرنا بشكل أعمق إلى بنية الوحدات النمطية واتصالاتها مع واجهة برمجة التطبيقات - سنحصل على شيء من هذا القبيل:

إذا كان مجلد "التطبيق" سننشئ مجلدًا آخر "api" مع رمز لمكالمات واجهة برمجة التطبيقات والبيانات التي سنحفظها في "config/store". هنا نحتفظ بالبيانات الثابتة وغير القابلة للتغيير التي نستخدمها في التطبيق بأكمله.

أيضًا في مجلد "pubs/schema" سنقوم بوصف أنواع بيانات محددة ل JavaScript الأشياء.

تحتوي جميع الوحدات النمطية على بيانات بداخلها والتي نحتاج إلى استخدامها (المستخدمين، المسارات، الجداول، الجداول، الإجراءات وغيرها). كل وحدة متصلة بطبقة التطبيق وتأخذ كل البيانات الضرورية.

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

الالتزامات التقليدية بواسطة ساثيابود مودهول في DZone

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

السبب وراء الحاجة إلى الالتزام بالعمل بطريقة أفضل

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

يبدو أن توريث الشيفرة البرمجية مشكلة كبيرة عند تقديم مطورين جدد لمشروع ما. قراءة الشيفرة شيء واحد، ولكن فهم كيف تم تطوير التطبيق ليس هو نفسه تمامًا. في كثير من الأحيان تثبت الالتزامات أنها مفيدة وتعطي سياقًا لسبب عدم التقاط هذه السجلات التي تم التقاطها بواسطة linter أو سبب وجود هذا الشرح السيئ // TODO لأبناء المطور الذي قام بعمل الشرح في البداية.

لنبدأ بالسبب الذي يجعل الالتزامات التقليدية أفضل من قواعد الالتزام غير الموحدة.

إذا قمنا بتوظيف مطورين جدد في مشروع تتكون معظم الالتزامات فيه من رسائل على غرار يجب أن يعمل أو إصلاح النائم للتذييل في أسرع وقت ممكن، فما الذي يخطر ببالك؟

أود أن أقول أن الأعلام الحمراء بسبب:

  • لا نعرف ما الذي يجب أن يعمل بالضبط
  • لماذا قام أحدهم بدفع شيء ما وهو نائم ويحتمل أن يكون خاطئاً؟
  • هل تم التسرع في الإصلاح إذا كان بإمكاننا رؤية شرح ASAP؟

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

هناك احتمال أن يرغب فريقك في إعداد قاعدة لا تسمح باستخدام كلمات مفتاحية معينة بحيث يمكن أن تكون كلمة "ASAP" أو أي كلمات بذيئة في القائمة السوداء.

الأدوات

ما هو مفيد حقًا في بداية المشروع هو تعريف الجميع بكيفية فريق التطوير يرغبون في رؤية مطورين جدد يلتزمون بتغييراتهم. ثم قم بإعداد أداة تساعدهم على مواكبة ما اتفقتم عليه جميعًا.

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

عند التعامل مع الإعدادات ونشرها عبر فريقك يمكنك ببساطة إنشاء حزمة npm ومجرد mpn i -D في كل مشروع. سيساعد ذلك بالتأكيد كل شخص في المشروع على أن يكون على نفس الصفحة في جميع الأوقات، وإذا لزم الأمر التنقل من مشروع إلى آخر لفهم ما هي التغييرات الأخيرة (ولماذا تم إجراؤها).

أصدقاء بمنافع متعددة

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

لنفترض أنك تعمل على PWA وأن طبقة المقابس الآمنة (SSL) ضرورية لك لاختبار الإمكانات الكاملة ولديك طبقة المقابس الآمنة على منصة الاختبار الخاصة بك. كل ما تحتاجه الآن هو مجرد التزام جيد. شيء ما على غرار إنجاز (PWA): تحميل إعداد أيقونات البيانات، سيؤدي تحميل إعداد صندوق العمل إلى تشغيل آلية الاختبار بأكملها وتحريك العجلات المسننة. لا نحتاج إلى ذلك عند تحميل بعض البيانات الثابتة فقط مثل manifest.json، لذا نضيف علامة [TEST_SKIP] كبادئة لاحقة إلى التزامنا. يمكّن ذلك التزامنا CI من تحميل الأصول الجديدة فقط إلى بيئة الاختبار وتخطي الاختبار. يمكنك قراءة المزيد عن ذلك هنا

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

التزام تقليدي سعيد!

تحديثات إصدار روبي 3.0.0 روبي 3.0 من مجتمع روبي

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

https://drive.google.com/file/d/1rboAusV1UTWXYMVGuLHx6O90lXrgkmnO/view?usp=sharing

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

https://thecodest.co/blog/ruby-3-0-ruby-and-lesser-known-privacy-control-methods

شكراً جزيلاً على القراءة، وإذا كنت قد وصلت إلى هذا الحد، فأنا أقدر وقتك وأرحب بكل تعليق على موقع LinkedIn أو على بريدي الإلكتروني.

نعود إليكم بالحلقة القادمة في نهاية شهر فبراير مع استعراض بودكاست مع CTO من Shopify، الرجل الذي يقف وراء فريق هندسي يعمل على تطبيق روبي الرائع المترابط!

أراك لاحقاً

صورة GIF للجولة 2 من الجولة2 صور GIF

عرض مطور روبي

اقرأ المزيد:

مراجعة TheCodestReview #4 - عصير هندسة البرمجيات الأسبوعي

مراجعة TheCodestReview #3 - عصير هندسة البرمجيات الأسبوعي

مراجعة TheCodestReview #2 - عصير هندسة البرمجيات الأسبوعي

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

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

إنشاء تطبيقات ويب مستقبلية: رؤى من فريق خبراء 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