0Pricing
DevOps Bootcamp · درس

بنية الشفرة واتفاقيات التسمية

اعتمد أفضل الممارسات لتنظيم ملفات ووحدات Terraform، إلى جانب اتفاقيات تسمية متسقة للموارد والمتغيرات.

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

لماذا ننظم شيفرة Terraform؟

كما أن تنظيم مساحة عملكم الفعلية يسهل استخدامها، فإن تنظيم شيفرة Terraform يجعل فهمها وإدارتها والتعاون عليها أسهل.

يحسّن التنظيم الجيد سهولة القراءة، ويقلل الأخطاء، ويساعد أعضاء الفريق الجدد على بدء العمل بسرعة.

ملفات Terraform الأساسية

تبدأ مشاريع Terraform عادةً بعدة ملفات أساسية. ويُعد تنظيم التهيئة ضمن هذه الملفات من أفضل الممارسات الشائعة:

  • main.tf: يعرّف الموارد والوحدات.
  • variables.tf: يصرّح بجميع متغيرات الإدخال.
  • outputs.tf: يعرّف قيم الإخراج من البنية التحتية.
  • versions.tf: يحدد إصدارات Terraform وموفّرات الخدمة.

تسمية الموارد

تسهّل التسمية المتسقة تحديد الموارد. اتبعوا هذه الإرشادات العامة للاسم المحلي (مثل my_instance في resource "aws_instance" "my_instance"):

  • استخدموا أسماء وصفية: ما وظيفة المورد؟
  • استخدموا الشرطات أو الشرطات السفلية: لتحسين سهولة القراءة (مثل web-server-sg أو web_server_sg).
  • تجنبوا الأسماء العامة: الاسم server أقل فائدة من app-frontend-server.

يجب أن تكون أسماء الموارد المحلية في Terraform فريدة ضمن الوحدة.

اتفاقيات تسمية المتغيرات

تجعل المتغيرات تهيئاتكم مرنة. وتُعد تسميتها بشكل جيد أمرًا أساسيًا:

  • أحرف صغيرة مع شرطات سفلية: هذه هي الاتفاقية الأكثر شيوعًا (مثل instance_type وvpc_id).
  • كونوا محددين: ما الذي يتحكم فيه هذا المتغير؟
  • أضيفوا أوصافًا: اشرحوا الغرض من المتغير بوضوح.

تساعد أسماء المتغيرات الجيدة الآخرين على فهم مدخلات الوحدة المتوقعة.

تسمية قيم الإخراج

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

  • أحرف صغيرة مع شرطات سفلية: كما هو الحال مع المتغيرات، مثل web_server_ip.
  • وصف القيمة: ما المعلومات التي توفرها؟
  • أضيفوا أوصافًا: وهي ضرورية لمخرجات الوحدات لتوضيح ما تُعيده.

مثال: تهيئة بسيطة

يوضح ملف main.tf الكامل هذا ممارسات التسمية الجيدة لمورد ومتغير وقيمة إخراج. يمكنكم تشغيل terraform init وterraform plan باستخدامه.

terraform {
  required_providers {
    null = {
      source = "hashicorp/null"
      version = "~> 3.0"
    }
  }
}

resource "null_resource" "example_web_server" {
  # Descriptive resource name
  triggers = {
    always_run = timestamp()
  }
}

variable "app_environment" {
  description = "The application's deployment environment (e.g., dev, prod)."
  type        = string
  default     = "development"
}

output "resource_unique_id" {
  description = "The unique ID of the example null resource."
  value       = null_resource.example_web_server.id
}

تنظيم وحدات Terraform

بالنسبة إلى المكونات القابلة لإعادة الاستخدام، تتمتع الوحدات ببنية واضحة خاصة بها:

  • الوحدة الجذر: الدليل الأعلى مستوى الذي يحتوي على التهيئة الرئيسية.
  • الوحدات الفرعية: أدلة فرعية، يحتوي كل منها على ملفات main.tf وvariables.tf وoutputs.tf الخاصة به، وغير ذلك.
  • README.md: ضروري لشرح الغرض من الوحدة ومدخلاتها ومخرجاتها.

يحافظ ذلك على استقلالية الوحدات ويسهّل إعادة استخدامها.

تنظيم مجلدات المشروع

إلى جانب تنظيم الملفات، يُعد تنظيم مجلدات المشروع أمرًا بالغ الأهمية، لا سيما في الإعدادات الكبيرة:

  • افصلوا البيئات: أنشئوا مجلدات مخصصة لكل من dev وstaging وprod، على أن يحتوي كل منها على تهيئته الخاصة.
  • مجلد الوحدات المشتركة: أنشئوا دليلًا باسم modules للوحدات المخصصة القابلة لإعادة الاستخدام.
  • المجلد الجذر للموفّرات: يحدد المجلد الأعلى مستوى عادةً الموفّرات وواجهة التخزين الخلفية للحالة.

يمنع ذلك انحراف التهيئة ويحسّن سهولة الإدارة بين البيئات.

مثال على مجلد المشروع

قد يبدو مشروع Terraform نموذجي متعدد البيئات بهذا الشكل، إذ يوفر فصلًا واضحًا وإمكانية إعادة الاستخدام:

. ├── modules/ │ ├── vpc/ │ │ ├── main.tf │ │ ├── variables.tf │ │ └── outputs.tf │ └── ec2-instance/ │ ├── main.tf │ └── variables.tf ├── environments/ │ ├── dev/ │ │ └── main.tf │ ├── staging/ │ │ └── main.tf │ └── prod/ │ └── main.tf └── README.md

تحققوا من فهمكم

أي مما يلي يُعد أفضل ممارسة لتسمية متغير إدخال في Terraform يحدد عدد المثيلات؟

مراجعة: البنية والتسمية

تعلمنا أن شيفرة Terraform المنظمة جيدًا وذات التسمية المتسقة ضرورية لسهولة القراءة والصيانة والتعاون ضمن الفريق.

  • نظّموا الملفات في main.tf وvariables.tf وoutputs.tf.
  • استخدموا أسماء وصفية بأحرف صغيرة وشرطات سفلية للموارد والمتغيرات وقيم الإخراج.
  • نظّموا الوحدات ومجلدات المشروع لإتاحة إعادة الاستخدام وفصل البيئات.

تمهّد هذه الممارسات لإدارة فعّالة للبنية التحتية باستخدام الشيفرة!

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

هل درس «بنية الشفرة واتفاقيات التسمية» مجاني؟

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

ماذا ستتعلم في «بنية الشفرة واتفاقيات التسمية»؟

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

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

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

كم من الوقت يستغرق درس «بنية الشفرة واتفاقيات التسمية»؟

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

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

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

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

  1. بنية الشفرة واتفاقيات التسمية
  2. التحكم في الإصدارات باستخدام Git
  3. التعاون بين أعضاء الفريق وسير العمل
  4. التوثيق وسير عمل الخدمة الذاتية
← العودة إلى DevOps Bootcamp