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

روبي 3.0 روبي وطرق التحكم في الخصوصية الأقل شهرة

The Codest

توماش زكاراديك

مهندس التطوير

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

الحلول الأساسية

لنفترض أننا نستخدم الصنف Foo الذي يحتوي على طريقة عامة واحدة وطريقة خاصة واحدة:

فئة Foo
  ديف بار
    :رائع
  النهاية

  خاص

  ديف باز
    :شيء_خاص
  نهاية
نهاية

كل شيء رائع، فنحن نرى مثل هذا الحل في كل المشروع. الجري فو.نيو.باز سيتسبب في حدوث الخطأ NoMethodError (تم استدعاء الطريقة الخاصة 'baz' ل # ) وهذا ما قصدنا القيام به. ماذا سيحدث إذا حاولنا تغيير تنسيق الحفظ وإضافة خاص كبادئة في تعريف الفئة؟

فئة Foo
  ديف بار
    :رائع
  النهاية

  خاص ديف باز
    :شيء_خاص
  نهاية
النهاية

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

فئة Foo
  ديف بار
    :رائع
  النهاية

  خاص ديف باز
    :شيء_خاص
  نهاية

  عام :باز
نهاية

ماذا سيحدث بعد تشغيل الكود؟

irb(main):012:012:0> Foo.new.baz
=> :شيء_خاص

نجاح! أصبحت طريقة القواعد لدينا عامة لأننا جعلناها مرئية مرتين. بالطبع، تنطبق نفس العملية على الوحدات النمطية.
​
عظيم، ولكن إلى أين سيقودنا هذا الأمر؟
​
تعطينا هذه الوظيفة الكثير لأنه يمكننا تغيير رؤية الطريقة بحرية أثناء تعريفها، أو حتى تغيير رؤية الطرق عند توريثها.

والآن، دعونا نلقي نظرة على ما يمكن أن يفعله روبي 2.7 من حيث تغيير رؤية الأسماء المستعارة والملحقات.

فئة Foo
  خاص attr_accessor :متغير_رائع
نهاية

لسوء الحظ، نحصل على خطأ لأن الطريقة الخاصة تتوقع الرموز و attr_accessor. تُعيد الشيفرة لا شيء وبالتالي هذه الطريقة غير متوافقة مع الاستخدام الخاص في روبي 2.7. إذًا ما هي خياراتنا؟

  1. يمكننا استخدام attr_accessor تحت الكلمة المفتاحية الخاصة لجعلها تعمل، أي أننا سنحصل على خطأ عندما نريد الإشارة إلى متغير_رائع_متغير_رائع_متغير_رائع الطريقة.
فئة Foo
  خاص

  attr_accessor :متغير_رائع
نهاية
  1. الخيار الثاني هو تنفيذ الطريقة الخاصة على الطرق التي تم إنشاؤها بواسطة السمة_السمة؛ في هذه الحالة، علينا أيضًا أن نتذكر إدخال أداة الضبط هناك.
فئة Foo
  السمة_المعالج :متغير_رائع

  خاص :رهيب_متغير، :رائع_متغير=
نهاية

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

فئة Foo
  اسم مستعار خاص :شريط، :شريط_رائع
نهاية

روبي 3.0 وأعمالنا

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

والآن، دعنا نرى بعض الأمثلة في أحدث إصدار من euba ونتحقق مما إذا كانت التغييرات قد أُجريت بالفعل وكيف يمكننا استخدامها.
​
في المثال الأول، دعنا نستخدم الخاص قبل ملحق attr:

فئة Foo
  خاص attr_accessor :متغير_رائع
نهاية

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

فئة Foo
  اسم مستعار خاص :شريط، :شريط_رائع
نهاية

هناك حقيقة مثيرة للاهتمام وهي أنه يمكننا أيضًا الخوض في طرق أخرى، على سبيل المثاليمكن استدعاء وحدة الطباعة بين الخاص والعطرالقارئ؛ من المهم أن تُعيد هذه الطريقة مصفوفة بأسماء الطرق الموجودة على الجانب الأيمن من التعبير.

صنف الوحدة النمطية
  def awesome_print(الأسماء)
    يضع الأسماء
    أسماء
  النهاية
النهاية
صنف Foo
  خاص طباعة_رهيبة_طباعة رهيبة قارئ:شريط_رهيبة
نهاية 

الملخص

آمل أن تجد هذه المقالة مفيدة! في حالة وجود المزيد من الأخبار حول روبي 3.0. اقرأ المزيد هنا.

ترميز سعيد!

عرض مطور روبي

اقرأ المزيد:

اخرس وخذ نقودك #1: التكاليف الخفية والرشاقة الحقيقية في عملية تطوير المنتج

CTO التحديات - توسيع نطاق ونمو منتجات البرمجيات

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

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

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