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

مطمئنا بهعنوان یک توسعهدهنده متوجه شدهاید که نرمافزارها هر روز پیچیدهتر میشوند و توسعه و نگهداری از یک برنامه به سادگی قبل نیست. همچنین وظیفهی توسعه، تست، نگهداری و گسترش برنامههای پیچیدهای که روزانه میلیونها نفر را تحت تاثیر قرار میدهند، برعهدهی شما است.
بههمین منظور باید از همان ابتدای توسعه، کدها را با ساختار مناسبی بنویسیم که درک، توسعه، دیباگینگ و نگهداری از آن آسان باشد و حتی قادر باشیم مجددا از آن کدها در بخشهای دیگری استفاده کنیم. البته این موضوع برای مبتدیان بسیار دلهرهآور خواهد بود زیرا آنها در حال توسعهی برنامههایی هستند که فقط کار میکند و نوشتن کدهایی با این قابلیتها دشوار است.
چرا همهی توسعهدهندگان باید برنامهنویسی فانکشنال را یاد بگیرند؟
برنامهنویسی فانکشنال به شما کمک میکند تا یاد بگیرید چگونه کدهای تمیزی بنویسید که نگهداری آنها آسان باشد و همچنین قادر خواهید بود برنامهی خود را بهآسانی توسعه دهید. البته شاید با خودتان بگویید که در محل کار یا پروژهای که بر روی آن کار میکنید از زبانهای برنامهنویسی فانکشنال استفاده نمیشود اما مطمئن باشید دانستن اصول برنامهنویسی فانکشنال تاثیر بسیار زیادی در بهتر نوشتن کدها خواهد داشت.
برنامهنویسی فانکشنال چیست؟
برنامهنویسی فانکشنال روشی برای نوشتن کدها با تاکید بر استفاده از فانکشنها است بنابراین نمیتوان آن را محدود به یک فریمورک یا ابزار دانست. همچنین برنامهنویسی فانکشنال فقط به استفاده از فانکشنها محدود نمیشود و تفاوتهای زیادی وجود دارد زیرا فانکشنها در همهی زبانهای برنامهنویسی وجود دارند اما نحوهی استفاده از آنها اهمیت دارد.
بیایید برای درک بهتر این روش با برخی اصولهای مقدماتی شروع کنیم. در هر برنامهای دو موضوع اصلی مطرح است:
- چگونگی انجام کارها
- دادهها
انجام کارها در برنامهنویسی فانکشنال به فانکشنها سپرده میشود و هر فانکشن، یک کار خاص را برای ما انجام میدهد. به زبان ساده میتوان گفت که دادهها توسط فانکشنها دریافت میشوند و یک خروجی پس از پردازش دادهها برگشت داده میشود و هر فانکشن میتواند بارها و بارها این کار را انجام دهد.
دادهها در برنامهنویسی فانکشنال immutable هستند یعنی پس از مقداردهی یک متغیر نمیتوانید تغییری در آن ایجاد کنید و اینجاست که ما از فانکشنها کمک میگیریم تا با دریافت این دادهها یک خروجی مناسب را در اختیار ما قرار دهند.
البته شما میتوانید در برنامهنویسی فانکشنال از فانکشنها بهعنوان پارامترهای ورودی یک فانکشن دیگر استفاده کنید و فقط نیاز خواهید داشت تا خروجی هر تابع را return کنید.

به این شکل آزادی بیشتری در استفاده از فانکشنهای کوچک و مستقل خواهیم داشت که در بخشهای دیگر پروژه قابل استفاده هستند و میتوانیم منطقهای پیچیدهتری را با ترکیب آنها پیادهسازی کنیم.
جمعبندی
با توجه به پیچیدگیهای روزافزون نرمافزارها میتوانیم با برنامهنویسی فانکشنال، روند توسعهی سادهتری داشته باشیم. همچنین کدهای پروژه، ماژولار و قابل فهم هستند که درنهایت توانایی بیشتری برای حل مشکلهای پیچیده و بزرگ در اختیار ما قرار میدهند.
منبع: https://medium.com/free-code-camp/learning-the-fundamentals-of-functional-programming-425c9fd901c6
توسعهدهندگان دربارهی ما چه میگویند
تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...
MohammadReza
![liara testimonial]()
keikaavousi
بعد از بسته شدن @fandoghpaas و ناراحتی همهمون از اینکه یه سرویس خوب و صادق نمیتونه از پس هزینهها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوتهایی داشت که کمی کار میخواست ولی تا الان کاملا راضی.
jadi
![liara testimonial]()
jadi
با قدرت میتونم بگم تیم پشتیانی لیاراliara_cloud@یکی از بهترین تیمهای پشتیبانی که تا حالا دیدم. کارشون ارائه سرویسهای PaaS هست ولی من سوال در سطح برنامه خودمم(نه زیرساخت پلتفرم) که میپرسم بازم کامل و به موقع راهنمایی میکنن.
Amir
![liara testimonial]()
amirmazinani_ir
واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیتهای سرویس دیتابیسشون اینه که خودشون به صورت دورهای بکآپ میگیرن.
...
Ali Najafi
![liara testimonial]()
me_ali_najafi
یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@
Navid
![liara testimonial]()
1navid
عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم
Amir H Shekari
![liara testimonial]()
vanenshi