برنامه نویسی

کد پاک و روش های خوب در پایتون

نوشتن کد پایتون تمیز و قابل نگهداری یک مهارت ضروری برای هر توسعه دهنده ای است. کد پاک نه تنها کار شما را خواناتر و کارآمدتر می کند، بلکه تضمین می کند که پروژه های شما به راحتی توسط دیگران قابل درک و نگهداری است. در این مقاله، اصول کلیدی و شیوه های خوب برای نوشتن کدهای پایتون تمیز را بررسی می کنیم.


1. دستورالعمل های سبک PEP 8 را دنبال کنید

PEP 8 راهنمای رسمی سبک پایتون است و قراردادهایی را برای نوشتن کدهای خوانا و سازگار ارائه می دهد. ابزارهایی مانند pylint و flake8 می‌توانند به اطمینان از پایبندی کد شما به این استانداردها کمک کنند.

قوانین کلیدی PEP 8:

  • از 4 فاصله برای تورفتگی استفاده کنید.
  • خطوط را به 79 کاراکتر محدود کنید.
  • از نام های معنی دار برای متغیرها و توابع استفاده کنید.

مثال:

# Good
def calculate_total_price(price, tax_rate):
    return price + (price * tax_rate)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


2. نام های توصیفی و معنی دار بنویسید

نام ها باید به وضوح هدف متغیرها، توابع و کلاس ها را توصیف کنند. از استفاده از حروف یا اصطلاحات مبهم خودداری کنید.

❌ بد:

def func(x, y):
    return x + y
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

✅ خوب:

def add_numbers(number1, number2):
    return number1 + number2
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

رهنمودها:

  • استفاده کنید snake_case برای نام متغیرها و توابع
  • استفاده کنید PascalCase برای نام کلاس ها

3. توابع و کلاس ها را کوچک نگه دارید

توابع باید یک کار را انجام دهند و آن را به خوبی انجام دهند. به طور مشابه، کلاس ها باید به این موارد پایبند باشند اصل مسئولیت واحد (SRP).

❌ بد:

def process_user_data(user):
    # Validating user
    if not user.get('name') or not user.get('email'):
        return "Invalid user"

    # Sending email
    print(f"Sending email to {user['email']}")
    return "Success"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

✅ خوب:

def validate_user(user):
    return bool(user.get('name') and user.get('email'))

def send_email(email):
    print(f"Sending email to {email}")

def process_user_data(user):
    if validate_user(user):
        send_email(user['email'])
        return "Success"
    return "Invalid user"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


4. از ثابت ها برای اعداد و رشته های جادویی استفاده کنید

از استفاده مستقیم از مقادیر کدگذاری شده در کد خود اجتناب کنید. آنها را به عنوان ثابت برای خوانایی و نگهداری بهتر تعریف کنید.

❌ بد:

if order_total > 100:
    discount = 10
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

✅ خوب:

MINIMUM_DISCOUNT_THRESHOLD = 100
DISCOUNT_PERCENTAGE = 10

if order_total > MINIMUM_DISCOUNT_THRESHOLD:
    discount = DISCOUNT_PERCENTAGE
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


5. از درک لیست برای تبدیل های ساده استفاده کنید

درک لیست کد شما را مختصرتر و پایتونیک تر می کند. با این حال، از پیچیده کردن بیش از حد آنها اجتناب کنید.

❌ بد:

squared_numbers = []
for number in range(10):
    squared_numbers.append(number ** 2)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

✅ خوب:

squared_numbers = [number ** 2 for number in range(10)]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


6. از آرگومان های پیش فرض قابل تغییر اجتناب کنید

استفاده از اشیاء قابل تغییر مانند لیست ها یا دیکشنری ها به عنوان آرگومان های پیش فرض می تواند منجر به رفتار غیرمنتظره شود.

❌ بد:

def append_to_list(value, items=[]):
    items.append(value)
    return items
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

✅ خوب:

def append_to_list(value, items=None):
    if items is None:
        items = []
    items.append(value)
    return items
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


7. استثنائات را به خوبی مدیریت کنید

پایتون استفاده از استثناها را برای مدیریت خطا تشویق می کند. استفاده کنید try...except بلوک هایی برای رسیدگی به خطاها و ارائه پیام های معنادار.

مثال:

try:
    result = int(input("Enter a number: ")) / 0
except ZeroDivisionError:
    print("Cannot divide by zero!")
except ValueError:
    print("Invalid input. Please enter a valid number.")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


8. کد DRY (تکرار نکنید) بنویسید

از تکرار منطق در کد خود اجتناب کنید. قابلیت های رایج را به توابع یا کلاس های قابل استفاده مجدد استخراج کنید.

❌ بد:

def calculate_area_circle(radius):
    return 3.14 * radius ** 2

def calculate_area_rectangle(length, width):
    return length * width
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

✅ خوب:

import math

def calculate_area(shape, **dimensions):
    if shape == "circle":
        return math.pi * dimensions["radius"] ** 2
    elif shape == "rectangle":
        return dimensions["length"] * dimensions["width"]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


9. از Docstrings و Comments استفاده کنید

کد خود را با رشته های اسنادی و نظرات معنی دار مستند کنید تا “چرا” پشت منطق پیچیده را توضیح دهید.

مثال:

def calculate_area(radius):
    """
    Calculate the area of a circle given its radius.

    Args:
        radius (float): The radius of the circle.

    Returns:
        float: The area of the circle.
    """
    return 3.14 * radius ** 2
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


10. از Type Hints استفاده کنید

نکات تایپ کد شما را خواناتر می کند و ابزارهای کمکی مانند mypy زودتر خطاها را تشخیص دهید

مثال:

def add_numbers(a: int, b: int) -> int:
    return a + b
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


11. کد خود را تست کنید

همیشه تست هایی بنویسید تا مطمئن شوید کد شما همانطور که انتظار می رود کار می کند. از فریم ورک هایی مانند unittest یا pytest.

مثال:

import unittest

def add(a, b):
    return a + b

class TestMathOperations(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(2, 3), 5)

if __name__ == "__main__":
    unittest.main()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


12. از محیط های مجازی استفاده کنید

برای جلوگیری از درگیری با استفاده از محیط های مجازی، وابستگی های پروژه خود را جدا کنید.

دستورات:

# Create a virtual environment
python -m venv env

# Activate the virtual environment
source env/bin/activate  # macOS/Linux
env\\Scripts\\activate   # Windows
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


آخرین کلمات

کد پاک چیزی بیش از مجموعه ای از قوانین است – این یک طرز فکر است. با اتخاذ این شیوه‌های خوب، کد پایتون را می‌نویسید که خوانا، قابل نگهداری و حرفه‌ای است. به یاد داشته باشید، کد پاک نه تنها برای شما، بلکه برای همه کسانی که با کد شما کار می کنند، مفید است.

تمرین کد پاک مورد علاقه شما در پایتون چیست؟ لطفا راهنمایی های خود را در نظرات زیر به اشتراک بگذارید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا