لیست مطالب

کدنویسی تمیز در پایتون (python clean code) راهنمای جامع

تا حالا شده به کدهای قدیمیت نگاه کنی و با خودت بگی: “آخه چرا؟!” کدهایی که مثل یک هزارتوی درهم پیچیده هستند و هیچ منطقی برای خوندن‌شون پیدا نمی‌کنی؟ اینجاست که “کدنویسی تمیز” به کار میاد.کدنویسی تمیز یا همون Clean Code مثل داشتن یک خانه مرتب و منظم هست که توی هر گوشه و کنارش همه چیز سر جای خودش قرار داره. هدف اصلی کدنویسی تمیز اینه که کدهایی بنویسی که هم برای خودت و هم برای بقیه توسعه‌دهنده‌ها مثل آب خوردن قابل فهم باشه.در این مقاله قصد داریم به زبان ساده، مفاهیم کدنویسی تمیز در پایتون رو برات توضیح بدیم و بهت نشون بدیم که چطور با رعایت چند اصل ساده می‌تونی کدهایی بنویسی که همه عاشقش بشن! پس آماده شو که قراره سفری به دنیای کدهای تمیز داشته باشیم.

کدنویسی تمیز چیست و چرا مهمه؟

خیلی ساده بخوام بگم، کدنویسی تمیز یعنی نوشتن کدی که مثل یه داستان قابل فهم باشه، کدهایی که وقتی خودت یا کسی دیگه شش ماه بعد بهش نگاه کرد، سریع متوجه بشه که چی کار می‌کنه. هدف اصلی اینه که نگهداری، توسعه و تغییرات در کد ساده‌تر بشه. خب، چرا اینقدر مهمه؟ فکر کن داری توی یه تیم کار می‌کنی و یه نفر دیگه کدی که نوشتی رو می‌خواد بخونه. اگه کدت مثل یک کتاب درسی پیچیده و غیرقابل فهم باشه، اون شخص احتمالاً به خط‌خطی کردن کد تو فکر می‌کنه! ولی اگه کدت تمیز و قابل فهم باشه، همون آدم ممکنه بیاد ازت تشکر هم بکنه!

ویژگی‌های کدنویسی تمیز در پایتون

خب، حالا که می‌دونی چرا کدنویسی تمیز مهمه، بریم سراغ چند ویژگی که بهت کمک می‌کنن کدت تمیزتر بشه:
  1. نام‌گذاری مناسب: یه حقیقت ساده: اسم‌ها مهم هستن! به جای استفاده از متغیرهایی مثل x یا temp123، از نام‌هایی مثل employee_name استفاده کن. مطمئن باش این کار از سردرد بعدی جلوگیری می‌کنه!
  2. کوچک نگه داشتن توابع: اگه تابعی داری که به اندازه یک رمان طولانی شده، احتمالش زیاده که داری چیزی رو اشتباه انجام می‌دی. توابع رو کوچک و با یک مسئولیت مشخص نگه دار.
  3. کامنت‌های شفاف، اما به اندازه: بله، کامنت‌ها خوبن ولی نباید خیلی زیاد باشن. کدت باید خودش گویا باشه، نه اینکه هر خطش رو توضیح بدی. اگه نیاز به کامنت گذاشتن داری، احتمالاً اسامی و ساختار کدت درست نیست.
  4. یک مسئولیت برای هر کلاس: یک کلاس نباید همه کاره باشه. این یعنی اگه یک کلاس رو داری که هم احراز هویت می‌کنه، هم ایمیل ارسال می‌کنه و هم سفارش‌ها رو مدیریت می‌کنه، بهتره بشینی و دوباره بهش فکر کنی.

مثال کاربردی از کدنویسی تمیز در پایتون

بیایید یه مثال کاربردی از کدنویسی تمیز در پایتون رو ببینیم. فرض کن یک برنامه داریم که اطلاعات کارمندان رو مدیریت می‌کنه. این کد بدیهی و سریع، ولی غیرتمیز رو ببین:
				
					def process_employees(e):
    for emp in e:
        if emp['type'] == 'fulltime':
            print(f"{emp['name']} earns {emp['salary']} annually.")
        elif emp['type'] == 'contractor':
            print(f"{emp['name']} earns {emp['hourly_rate']} per hour.")

				
			

چه مشکلی اینجا داریم؟ اولاً، e یعنی چی؟ بعدش، این کد مقیاس‌پذیری نداره؛ اضافه کردن نوع جدیدی از کارمند کلی زحمت می‌خواد. حالا بیایید همین کد رو به روشی تمیزتر بنویسیم:

				
					class Employee:
    def __init__(self, name):
        self.name = name

    def get_payment_info(self):
        pass

class FullTimeEmployee(Employee):
    def __init__(self, name, salary):
        super().__init__(name)
        self.salary = salary

    def get_payment_info(self):
        return f"{self.name} earns {self.salary} annually."

class Contractor(Employee):
    def __init__(self, name, hourly_rate):
        super().__init__(name)
        self.hourly_rate = hourly_rate

    def get_payment_info(self):
        return f"{self.name} earns {self.hourly_rate} per hour."

def process_employees(employees):
    for emp in employees:
        print(emp.get_payment_info())

employees = [
    FullTimeEmployee("Alice", 50000),
    Contractor("Bob", 50)
]
process_employees(employees)

				
			

حالا نگاه کن چقدر همه چیز مرتب و زیبا شده. اضافه کردن یک نوع کارمند جدید مثل آب خوردن می‌شه و دیگه نیازی به تغییرات زیاد در کد اصلی نیست.

اصول SOLID: راهنمای طلایی کدنویسی تمیز

علاوه بر این که باید کدها رو تمیز بنویسیم، اصول SOLID به ما کمک می‌کنه که کدهایی بنویسیم که مقیاس‌پذیر، قابل توسعه و خوانا باشن. این پنج اصل مثل یک جعبه ابزار برای ساخت کدهای تمیز عمل می‌کنن.

  1. Single Responsibility (SRP) : هر کلاس باید فقط یک کار انجام بده. این اصل ساده به نظر میاد، ولی نجات‌دهنده است.

  2. اصل Open-Close (OCP) : کلاس‌ها باید برای توسعه باز باشن، ولی برای تغییر بسته. یعنی بتونی ویژگی جدیدی به کدت اضافه کنی، بدون اینکه ساختار قبلی رو خراب کنی.

  3. اصل جایگزینی لیسکوف (LSP): اگر یک کلاس فرزند جایگزین کلاس والدش بشه، برنامه نباید بهم بریزه. این یعنی کلاس‌های فرزند باید بتونن تمام رفتارهای کلاس والد رو داشته باشن.

  4. اصل جداسازی رابط (ISP): به جای ساختن یک رابط بزرگ، چندین رابط کوچک و خاص ایجاد کن.

  5. اصل وارونگی وابستگی (DIP): کلاس‌های سطح بالا نباید به جزئیات سطح پایین وابسته باشن. به جای وابستگی به کلاس‌های خاص، به انتزاع‌ها وابسته باش.

جمع‌بندی

کدنویسی تمیز در پایتون چیزی نیست که بشه نادیده‌اش گرفت. با رعایت اصولی مثل SOLID و تکنیک‌های ساده‌ای مثل انتخاب نام‌های مناسب و نگه داشتن توابع کوچک، می‌تونی کدهایی بنویسی که نه تنها خودت، بلکه هم‌تیمی‌هات هم عاشقش بشن.

حالا که با اصول اولیه آشنا شدی، دفعه بعدی که می‌خوای کدی بنویسی، این نکات رو به یاد بیار و مطمئن باش که تفاوت بزرگی در کیفیت کدت حس می‌کنی.

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

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

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