مقدمهای بر برنامهنویسی فانکشنال
۲۹ خرداد ۱۴۰۰
مطمئنا بهعنوان یک توسعهدهنده متوجه شدهاید که نرمافزارها هر روز پیچیدهتر میشوند و توسعه و نگهداری از یک برنامه به سادگی قبل نیست. همچنین وظیفهی توسعه، تست، نگهداری و گسترش برنامههای پیچیدهای که روزانه میلیونها نفر را تحت تاثیر قرار میدهند، برعهدهی شما است.
بههمین منظور باید از همان ابتدای توسعه، کدها را با ساختار مناسبی بنویسیم که درک، توسعه، دیباگینگ و نگهداری از آن آسان باشد و حتی قادر باشیم مجددا از آن کدها در بخشهای دیگری استفاده کنیم. البته این موضوع برای مبتدیان بسیار دلهرهآور خواهد بود زیرا آنها در حال توسعهی برنامههایی هستند که فقط کار میکند و نوشتن کدهایی با این قابلیتها دشوار است.
چرا همهی توسعهدهندگان باید برنامهنویسی فانکشنال را یاد بگیرند؟
برنامهنویسی فانکشنال به شما کمک میکند تا یاد بگیرید چگونه کدهای تمیزی بنویسید که نگهداری آنها آسان باشد و همچنین قادر خواهید بود برنامهی خود را بهآسانی توسعه دهید. البته شاید با خودتان بگویید که در محل کار یا پروژهای که بر روی آن کار میکنید از زبانهای برنامهنویسی فانکشنال استفاده نمیشود اما مطمئن باشید دانستن اصول برنامهنویسی فانکشنال تاثیر بسیار زیادی در بهتر نوشتن کدها خواهد داشت.
برنامهنویسی فانکشنال چیست؟
برنامهنویسی فانکشنال روشی برای نوشتن کدها با تاکید بر استفاده از فانکشنها است بنابراین نمیتوان آن را محدود به یک فریمورک یا ابزار دانست. همچنین برنامهنویسی فانکشنال فقط به استفاده از فانکشنها محدود نمیشود و تفاوتهای زیادی وجود دارد زیرا فانکشنها در همهی زبانهای برنامهنویسی وجود دارند اما نحوهی استفاده از آنها اهمیت دارد.
بیایید برای درک بهتر این روش با برخی اصولهای مقدماتی شروع کنیم. در هر برنامهای دو موضوع اصلی مطرح است:
- چگونگی انجام کارها
- دادهها
انجام کارها در برنامهنویسی فانکشنال به فانکشنها سپرده میشود و هر فانکشن، یک کار خاص را برای ما انجام میدهد. به زبان ساده میتوان گفت که دادهها توسط فانکشنها دریافت میشوند و یک خروجی پس از پردازش دادهها برگشت داده میشود و هر فانکشن میتواند بارها و بارها این کار را انجام دهد.
دادهها در برنامهنویسی فانکشنال immutable هستند یعنی پس از مقداردهی یک متغیر نمیتوانید تغییری در آن ایجاد کنید و اینجاست که ما از فانکشنها کمک میگیریم تا با دریافت این دادهها یک خروجی مناسب را در اختیار ما قرار دهند.
البته شما میتوانید در برنامهنویسی فانکشنال از فانکشنها بهعنوان پارامترهای ورودی یک فانکشن دیگر استفاده کنید و فقط نیاز خواهید داشت تا خروجی هر تابع را return کنید.
به این شکل آزادی بیشتری در استفاده از فانکشنهای کوچک و مستقل خواهیم داشت که در بخشهای دیگر پروژه قابل استفاده هستند و میتوانیم منطقهای پیچیدهتری را با ترکیب آنها پیادهسازی کنیم.
جمعبندی
با توجه به پیچیدگیهای روزافزون نرمافزارها میتوانیم با برنامهنویسی فانکشنال، روند توسعهی سادهتری داشته باشیم. همچنین کدهای پروژه، ماژولار و قابل فهم هستند که درنهایت توانایی بیشتری برای حل مشکلهای پیچیده و بزرگ در اختیار ما قرار میدهند.
منبع: https://medium.com/free-code-camp/learning-the-fundamentals-of-functional-programming-425c9fd901c6