Kahibaro
Discord Login Register

چرا توابع مهم هستند؟

مزیت‌های استفاده از توابع

توابع یکی از مهم‌ترین ابزارهای شما در برنامه‌نویسی هستند. بدون تابع هم می‌شود کد نوشت، اما کد شما خیلی زود شلوغ، تکراری و سخت‌فهم می‌شود. در این بخش تمرکز ما روی این است که «چرا اصلاً باید از تابع استفاده کنیم؟» نه این‌که «چطور تابع تعریف کنیم» (این در بخش‌های بعدی همین فصل می‌آید).

در ادامه چند دلیل اصلیِ مهم‌بودن توابع را می‌بینید.

۱. جلوگیری از تکرار کد (DRY)

یک اصل مشهور در برنامه‌نویسی هست به نام DRY که مخفف:

$$
\text{Don't Repeat Yourself}
$$

است؛ یعنی «خودت را تکرار نکن».

بدون تابع، ممکن است یک کارِ شبیه را در چند جای برنامه کپی‌پیست کنید. مثلاً فرض کنید در چند جای برنامه باید متن خوش‌آمدگویی را چاپ کنید:

print("سلام! به برنامه‌ی ما خوش آمدید.")
print("سلام! به برنامه‌ی ما خوش آمدید.")
print("سلام! به برنامه‌ی ما خوش آمدید.")

اگر بعداً بخواهید متن را عوض کنید، باید در همه‌ی این خطوط تغییر بدهید. این یعنی احتمال اشتباه، خستگی و فراموشی.

اگر برای این کار یک تابع بسازید (فرض کنید تابعی به اسم salam())، فقط در یک‌جا متن را تغییر می‌دهید و در بقیه‌ی جاها فقط تابع را صدا می‌زنید:

def salam():
    print("سلام! به برنامه‌ی ما خوش آمدید.")
# استفاده در جاهای مختلف
salam()
salam()
salam()

حالا اگر متن را عوض کنید، همه‌جا به‌طور خودکار درست می‌شود. این یعنی:

۲. تقسیم مسئله‌ی بزرگ به قسمت‌های کوچک‌تر

وقتی یک مسئله‌ی بزرگ دارید (مثلاً برنامه‌ی مدیریت نمرات دانش‌آموزان، یا یک بازی ساده)، اگر بخواهید همه‌چیز را پشتِ سر هم در یک فایل و بدون تابع بنویسید، خیلی زود گیج می‌شوید.

توابع به شما کمک می‌کنند که کار را «تکه‌تکه» کنید. مثلاً:

یعنی به‌جای این‌که یک کد ۳۰۰ خطی بنویسید، چند «بخش معنی‌دار» دارید که هرکدام کار مشخصی انجام می‌دهد.

مزیت این روش:

۳. قابل‌فهم‌تر و خواناتر شدن کد

وجود توابع، کد را شبیه یک «گزارش قابل‌خواندن» می‌کند. فرض کنید کدی مثل این داشته باشید (فقط تصور کنید، نه لزوماً کد واقعی):

محاسبه_میانگین()
نمایش_نتیجه()
ذخیره_در_فایل()

حتی اگر داخل این توابع را نبینید، از اسم‌شان تقریباً می‌فهمید چه اتفاقی می‌افتد. این کمک می‌کند:

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

۴. استفاده‌ی مجدد از کد (Reuse)

یکی از بزرگ‌ترین قدرت‌های توابع این است که یک‌بار می‌نویسید، چندین‌بار استفاده می‌کنید.

مثلاً فرض کنید قرار است در چند پروژه‌ی مختلف، یک متن را تمیز کنید (فاصله‌های اضافی را حذف کنید، حروف را کوچک کنید و ...). اگر این منطق را در یک تابع بنویسید، می‌توانید:

این یعنی:

در واقع بسیاری از کتابخانه‌های پایتون چیزی نیستند جز مجموعه‌ای از توابع آماده که قبلاً توسط دیگران نوشته شده‌اند.

۵. ساده‌ترشدن تست و اشکال‌زدایی

وقتی کد شما توابع جداگانه دارد، تست کردن آن آسان‌تر است. به‌جای این‌که کل برنامه را اجرا کنید، می‌توانید فقط یک تابع کوچک را امتحان کنید:

این کار که به آن «تست واحد» (Unit Test) می‌گویند، وقتی ممکن است که کد شما واقعاً به واحدهای کوچک (توابع) تقسیم شده باشد.

برای اشکال‌زدایی هم مفید است:

۶. نوشتن توابع، شما را وادار به «فکر کردن بهتر» می‌کند

ممکن است در ابتدای یادگیری این‌طور به نظر برسد که توابع فقط یک ابزارِ اضافه هستند و بدون آن هم می‌شود کار کرد. اما مزیت پنهان توابع این است که شما را مجبور می‌کنند:

این نوع فکر کردن، همان مهارت «طراحی برنامه» است که هرچه جلوتر بروید اهمیتش بیشتر می‌شود.

۷. همکاری با دیگران آسان‌تر می‌شود

اگر روزی با دیگران روی یک پروژه کار کنید، معمولاً کار را این‌طور تقسیم می‌کنند:

وقتی برنامه شما بر پایه‌ی توابع نوشته شده باشد:

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

۸. نزدیک شدن به مفاهیم پیشرفته‌تر

در پایتون و به‌طور کلی در برنامه‌نویسی، خیلی از مفاهیم پیشرفته بر پایه‌ی «تابع» ساخته شده‌اند. مثلاً:

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

جمع‌بندی

به‌طور خلاصه، توابع مهم هستند چون:

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

Views: 6

Comments

Please login to add a comment.

Don't have an account? Register now!