0Pricing
DevOps Bootcamp · درس

تحديد نطاق كتلة باستخدام with

ضيّق النقطة إلى شجرة فرعية وتعرّف على محاذير ذلك

تحديد نطاق كتلة باستخدام with درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

توقف عن تكرار المسارات الطويلة

تكرار كتابة .Values.image.repository يصبح مزعجًا. يضيّق إجراء with نطاق النقطة إلى شجرة فرعية، بحيث يمكنك كتابة مسارات أقصر.

إجراء with

تبدأ كتلة with بالصيغة {{ with SOMETHING }} وتنتهي بالصيغة {{ end }}. وداخلها، تُعاد النقطة إلى كل ما مررته إليها.

{{ with .Values.image }}
repository: {{ .repository }}
tag: {{ .tag }}
{{ end }}

تنتقل النقطة إلى الداخل

بعد الدخول، يعني .repository القيمة .Values.image.repository. تعيد الكلمة المفتاحية with ربط النقطة بالشجرة الفرعية، فتختصر كل مسار يقع تحتها.

image:
  repository: nginx
  tag: "1.27"

تعمل أيضًا كحارس

إذا كانت القيمة empty أو مفقودة، يتجاوز with كتلته بالكامل. وهكذا يحدد نطاق النقطة ويعمل في الوقت نفسه مثل if. 🛡️

إضافة فرع else

مثل if، يقبل with فرع else. يُصيَّر else عندما تكون القيمة فارغة، ما يمنحك قيمة بديلة مرتبة للإعدادات الاختيارية.

{{ with .Values.resources }}
resources:
{{ toYaml . | indent 2 }}
{{ else }}
# no resources set
{{ end }}

مأزق النطاق

إليك المأزق: داخل with، لم تعد النقطة تشير إلى الجذر. لذلك يفشل .Release.Name، لأن Release لا يوجد ضمن الشجرة الفرعية.

الرجوع إلى الجذر باستخدام $

لاستخدام قيم الجذر داخل with، اكتب قبلها $. تشير علامة الدولار دائمًا إلى سياق الجذر الأصلي، مهما كان عمق المستوى الذي وصلت إليه.

{{ with .Values.image }}
name: {{ $.Release.Name }}
image: {{ .repository }}
{{ end }}

إبقاء الكتل صغيرة

لأن with تستولي على النقطة، تصبح الكتل الكبيرة مربكة بسرعة. اجعل أقسام with قصيرة حتى يظل واضحًا إلى ما تشير إليه النقطة.

with في مقابل if

استخدم if عندما تريد اختبار علامة فقط، واستخدم with عندما تريد أيضًا التعمق في تلك القيمة. تغيّر with النقطة، بينما تتركها if كما هي.

معاينة النطاق

غير متأكد مما تحتويه النقطة؟ نفّذ التصيير باستخدام helm template واقرأ الناتج، أو اطبع النطاق أثناء تصحيح كتلة with معقدة.

helm template ./mychart

تداخل كتل with

يمكنك تداخل with داخل أخرى للتعمق أكثر. ينقل كل مستوى النقطة خطوة إضافية إلى الأسفل، لذا احرص على تتبع موضعك.

{{ with .Values.image }}
{{ with .pullSecrets }}
# . is now pullSecrets
{{ end }}
{{ end }}

تحقق سريع

داخل كتلة {{ with .Values.image }}، تحاول قراءة .Release.Name لكنها فارغة.

مراجعة

أصبحت الآن تحدد نطاق النقطة باستخدام with، وتحصل تلقائيًا على حارس للتحقق من الفراغ، وتضيف قيمة بديلة باستخدام else، وتصل إلى الجذر باستخدام $. قوالب أكثر ترتيبًا! 🎯

الأسئلة الشائعة

هل درس «تحديد نطاق كتلة باستخدام with» مجاني؟

نعم — نص درس «تحديد نطاق كتلة باستخدام with» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «تحديد نطاق كتلة باستخدام with»؟

ضيّق النقطة إلى شجرة فرعية وتعرّف على محاذير ذلك تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «تحديد نطاق كتلة باستخدام with»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الكتل الشرطية باستخدام if وelse
  2. القيم المنطقية والعوامل في الشروط
  3. التكرار على القوائم والخرائط باستخدام range
  4. تحديد نطاق كتلة باستخدام with
← العودة إلى DevOps Bootcamp