مقدمه‌ای بر برنامه‌نویسی فانکشنال


۲۹ خرداد ۱۴۰۰
مقدمه‌ای بر برنامه‌نویسی فانکشنال

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

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

چرا همه‌ی توسعه‌دهندگان باید برنامه‌نویسی فانکشنال را یاد بگیرند؟

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

برنامه‌نویسی فانکشنال چیست؟

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

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

  1. چگونگی انجام کارها
  2. داده‌ها

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

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

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

استفاده از فانکشن به‌عنوان پارامتر ورودی یک فانکشن دیگر

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

جمع‌بندی

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

منبع: https://medium.com/free-code-camp/learning-the-fundamentals-of-functional-programming-425c9fd901c6

برچسب‌ها:

خدمات رایگان لیارا

۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

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

دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

سرویس DNS رایگان

به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

۱۰۰ هزار تومان اعتبار اولیه

بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته رایگان استفاده کنید.

ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید و فقط برای بیش از آن هزینه پرداخت کنید. (به‌همراه دسترسی SMTP)

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

تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

توسعه‌دهندگان درباره‌ی ما چه می‌گویند

تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...

MohammadReza
liara testimonial
keikaavousi

بعد از بسته شدن @fandoghpaas و ناراحتی همه‌مون از اینکه یه سرویس خوب و صادق نمی‌تونه از پس هزینه‌ها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوت‌هایی داشت که کمی کار می‌خواست ولی تا الان کاملا راضی.

jadi
liara testimonial
jadi

یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.

Arch
liara testimonial
EbadiDev

واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیت‌های سرویس دیتابیس‌شون اینه که خودشون به صورت دوره‌ای بکآپ میگیرن.
...

Ali Najafi
liara testimonial
me_ali_najafi

یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@

Navid
liara testimonial
1navid

عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم

Amir H Shekari
liara testimonial
vanenshi