درس ۵ برنامهنویسی: تابع و شکستن مسئله به بخشهای کوچک
چگونه با تابعها کد خواناتر، قابل استفاده مجدد و قابل آزمایش بنویسیم؟
ورودی و خروجی روشن
تابع calculateDiscount باید قیمت و درصد را دریافت و مبلغ تخفیف را برگرداند. وابستگی پنهان به متغیرهای بیرونی، فهم و تست تابع را دشوار میکند.
یک مسئولیت در هر تابع
تابعی که هم اعتبارسنجی میکند، هم ذخیره میکند و هم پیام میسازد بیش از حد مسئولیت دارد. هر بخش را جدا کن و جریان اصلی را با ترکیب تابعهای کوچک بساز.
- نام فعلی و رفتاری انتخاب کن.
- پارامترهای ضروری را نگه دار.
- نتیجه قابل پیشبینی برگردان.
- حالت خطا را تعریف کن.
تمرین این درس
برای برنامه هزینه، سه تابع بنویس: محاسبه مجموع، پیدا کردن میانگین و ساخت خلاصه متنی. هر تابع را با ورودی ساده و ورودی خالی جداگانه بررسی کن.
پرسشهای متداول
تابع چقدر باید کوتاه باشد؟
عدد ثابتی وجود ندارد؛ معیار این است که یک هدف روشن داشته باشد و بدون دنبالکردن چند مسئولیت فهمیده شود.
پارامتر زیاد چه نشانهای است؟
ممکن است تابع بیش از یک کار انجام دهد یا دادههای مرتبط به ساختار منسجمی نیاز داشته باشند.
جمعبندی
تابعهای کوچک با ورودی و خروجی روشن، کد را قابل فهم و تست میکنند. از نام تابع باید بتوان رفتار آن را حدس زد.
از مفهوم تا استفاده واقعی
برنامهنویسی یعنی تبدیل یک مسئله مبهم به ورودی، چند تصمیم روشن و یک خروجی قابل بررسی. زبان مهم است، اما روش حل مسئله مهارتی است که میان همه زبانها مشترک میماند.
یک مثال از دنیای واقعی
یک فروشگاه محلی میخواهد سفارشهای بالاتر از ۵۰۰ هزار تومان را رایگان ارسال کند. مسئله واقعی را میتوان به دریافت مبلغ سفارش، بررسی شرط و نمایش هزینه ارسال تقسیم کرد.
function shippingCost(orderTotal) {
if (orderTotal >= 500000) return 0;
return 45000;
}
const total = 620000;
console.log(`هزینه ارسال: ${shippingCost(total)} تومان`);حالا نوبت توست
شرط دیگری اضافه کن تا سفارشهای کمتر از ۱۰۰ هزار تومان پذیرفته نشوند و یک پیام روشن نمایش داده شود.
- نمونه را یکبار اجرا یا بازنویسی کن.
- تغییر خواستهشده را بدون کپی کامل انجام بده.
- خروجی را با انتظار خودت مقایسه کن.
- در یک جمله توضیح بده چرا راهحل کار کرد.
اول مسئله و خروجی مورد انتظار را روشن کن؛ بعد ابزار را انتخاب کن.
نمونه کوچکِ کامل از پروژه بزرگِ نیمهتمام بیشتر به یادگیری کمک میکند.
کد را فقط نخوان؛ تغییرش بده، خطا بساز و دلیل نتیجه را توضیح بده.
این مسیر را ادامه بده
تمرین این صفحه را انجام بده، نتیجه را برای خودت توضیح بده و بعد سراغ درس مرتبط بعدی برو.
انتخاب مسیر بعدی ←