رفتن به محتوای اصلی
برنامه‌سازی پیشرفته با پایتون درس‌نامهٔ آزاد
مفهوم مقدماتی ۶ دقیقه

تابع و مسئولیت واحد

چرا تابع‌های کوچک بهترند؟ مسئولیت واحد، نام‌گذاری و خالص‌بودن با مثال پایتون.

تعریف مسئولیت واحد

هر تابع فقط یک دلیل برای تغییر دارد: یک کار مشخص با ورودی و خروجی روشن.

تابع خوب شبیه جملهٔ خبری است: فاعل (نام)، مفعول (ورودی) و نتیجه (خروجی). وقتی بدنهٔ تابع را می‌خوانی نباید غافلگیر شوی: نه ورودی پنهان، نه اثر جانبی مخفی.

def discounted(price, percent):
    """قیمت بعد از تخفیف را برمی‌گرداند؛ هیچ‌چیز را عوض نمی‌کند."""
    return price * (1 - percent / 100)

این تابع خالص است: خروجی فقط از ورودی می‌آید. تابع خالص را می‌شود بدون ترس تست کرد، کش کرد و موازی اجرا کرد.

برداشت نادرست رایج

اشتباه رایج

تابع هرچه بیشتر کار کند بهتر است، چون کد کمتر می‌شود.

تصحیح

تابعی که سه کار می‌کند در سه سناریوی متفاوت می‌شکند و تستش سه برابر سخت است. کوتاهیِ فایل هدف نیست؛ ارزانیِ تغییر هدف است.

مطالب مرتبط

از همین بخش و با برچسب‌های مشترک

این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

وضعیت پیشرفت برای تابع و مسئولیت واحد