"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > أفضل ممارسات بايثون: كتابة تعليمات برمجية نظيفة وفعالة وقابلة للصيانة

أفضل ممارسات بايثون: كتابة تعليمات برمجية نظيفة وفعالة وقابلة للصيانة

تم النشر بتاريخ 2024-11-06
تصفح:214

Python Best Practices: Writing Clean, Efficient, and Maintainable Code

تعد بايثون واحدة من لغات البرمجة الأكثر شعبية بسبب بساطتها وسهولة قراءتها وتعدد استخداماتها.

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

في منشور المدونة هذا، سنستكشف بعضًا من أفضل الممارسات الأساسية التي يجب وضعها في الاعتبار عند كتابة كود بايثون.


1 - الالتزام بإرشادات PEP 8

PEP 8 هو دليل أسلوب كود Python، حيث يوفر اصطلاحات لتنسيق وتنظيم التعليمات البرمجية الخاصة بك.

تتضمن بعض النقاط الرئيسية من PEP 8 ما يلي:

  • المسافة البادئة: استخدم 4 مسافات لكل مستوى مسافة بادئة.
  • طول السطر: تحديد جميع الأسطر بـ 79 حرفًا كحد أقصى.
  • أسطر فارغة: افصل بين تعريفات الوظائف والفئة ذات المستوى الأعلى بسطرين فارغين، وتعريفات الطريقة داخل الفصل بسطر واحد فارغ.
  • الاستيرادات: ضع الواردات في أعلى الملف، مجمعة بالترتيب التالي: استيرادات المكتبة القياسية، وواردات الجهات الخارجية ذات الصلة، والواردات المحلية للتطبيقات/المكتبات.

الالتزام بـ PEP 8 يجعل التعليمات البرمجية الخاصة بك أكثر قابلية للقراءة ومتسقة مع قواعد تعليمات Python الأخرى.


2 - كتابة أسماء المتغيرات وصفية وموجزة

اختر أسماء المتغيرات التي تكون وصفية وموجزة.

تجنب المتغيرات ذات الحرف الواحد إلا في حالات مثل عدادات الحلقات.
على سبيل المثال:

# Bad
a = 10

# Good
number_of_users = 10

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


3 - استخدام قائمة الفهم والتعبيرات المولدة

توفر فهم القائمة وتعبيرات المولد طريقة موجزة لإنشاء القوائم والمولدات.

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

# List comprehension
squares = [x**2 for x in range(10)]

# Generator expression
squares_gen = (x**2 for x in range(10))

تكون عملية فهم القائمة هي الأفضل عندما تكون القائمة الناتجة صغيرة بما يكفي لتناسب الذاكرة.

استخدم تعبيرات المولد لمجموعات بيانات أكبر لتوفير الذاكرة.


4 - الاستفادة من الوظائف والمكتبات المدمجة في لغة بايثون

مكتبة بايثون القياسية واسعة النطاق، وغالبًا ما يكون من الأفضل استخدام الوظائف المضمنة بدلاً من كتابة تعليمات برمجية مخصصة.

على سبيل المثال، بدلاً من كتابة دالتك الخاصة للعثور على الحد الأقصى لقائمة، استخدم وظيفة max() المضمنة في Python.

# Bad
def find_max(lst):
    max_val = lst[0]
    for num in lst:
        if num > max_val:
            max_val = num
    return max_val

# Good
max_val = max(lst)


يمكن أن يؤدي استخدام الوظائف والمكتبات المضمنة إلى توفير الوقت وتقليل احتمالية حدوث الأخطاء.


5 - اتبع مبدأ الجفاف (لا تكرر نفسك)

تجنب تكرار الكود.

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

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

# Bad
def print_user_details(name, age):
    print(f"Name: {name}")
    print(f"Age: {age}")

def print_product_details(product, price):
    print(f"Product: {product}")
    print(f"Price: {price}")

# Good
def print_details(label, value):
    print(f"{label}: {value}")

يؤدي مبدأ DRY إلى المزيد من التعليمات البرمجية المعيارية والقابلة لإعادة الاستخدام.


6- استخدم البيئات الافتراضية

عند العمل على مشروع بايثون، خاصة مع التبعيات، فمن الأفضل استخدام البيئات الافتراضية.

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

# 
Create a virtual environment
python -m venv myenv

# Activate the virtual environment
source myenv/bin/activate  # On Windows: myenv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

يضمن استخدام البيئات الافتراضية عزل تبعيات مشروعك وإمكانية تكرارها بسهولة.


7- كتابة اختبارات الوحدة

تعد اختبارات الكتابة أمرًا بالغ الأهمية لضمان عمل التعليمات البرمجية الخاصة بك كما هو متوقع ولمنع التراجعات عند إجراء التغييرات.

وحدة اختبار الوحدة في بايثون هي نقطة انطلاق رائعة لكتابة الاختبارات.

import unittest

def add(a, b):
    return a   b

class TestMathFunctions(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(2, 3), 5)
        self.assertEqual(add(-1, 1), 0)

if __name__ == '__main__':
    unittest.main()

يضمن إجراء الاختبارات بانتظام أثناء التطوير بقاء التعليمات البرمجية الخاصة بك قوية وخالية من الأخطاء.


8 - استخدم التعليقات والمستندات الهادفة

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

استخدم التعليقات بشكل مقتصد وركز على سبب قيامك بشيء ما بدلاً من التركيز على ما فعلته.

def calculate_discount(price, discount):
    """
    Calculate the price after applying the discount.

    Args:
    price (float): Original price
    discount (float): Discount percentage (0-100)

    Returns:
    float: Final price after discount
    """
    return price * (1 - discount / 100)

تعمل التعليقات والمستندات الجيدة على تحسين قابلية الصيانة وسهولة استخدام التعليمات البرمجية الخاصة بك.


9- التعامل مع الاستثناءات بلطف

توفر بايثون ميزات قوية لمعالجة الاستثناءات والتي يجب استخدامها لإدارة الأخطاء بأمان.

بدلاً من السماح لبرنامجك بالتعطل، استخدم كتل المحاولة والاستثناء لمعالجة الأخطاء المحتملة.

try:
    with open('data.txt', 'r') as file:
        data = file.read()
except FileNotFoundError:
    print("File not found. Please check the file path.")
except Exception as e:
    print(f"An unexpected error occurred: {e}")

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


10 - حافظ على الكود المعياري الخاص بك

الكود المعياري أسهل في الفهم والاختبار والصيانة.

قم بتقسيم التعليمات البرمجية الخاصة بك إلى وظائف وفئات أصغر وقابلة لإعادة الاستخدام.

يجب أن يكون لكل وظيفة أو فئة مسؤولية واحدة.

# Bad
def process_data(data):
    # Load data
    # Clean data
    # Analyze data
    # Save results

# Good
def load_data(path):
    pass

def clean_data(data):
    pass

def analyze_data(data):
    pass

def save_results(results):
    pass

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


خاتمة

باتباع أفضل ممارسات Python، يمكنك كتابة تعليمات برمجية نظيفة وفعالة وقابلة للصيانة.

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

تذكر أن البرمجة لا تتعلق فقط بجعل الأشياء تعمل؛ يتعلق الأمر بجعلهم يعملون بشكل جيد، الآن وفي المستقبل.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/devasservice/python-best-practices-writing-clean-efficiency-and-maintainable-code-34bj?1 إذا كان هناك أي انتهاك، فيرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3