بررسی اجمالی فصل
در آخر این فصل شما توانایی استفاده از کانسپت های برنامه نویسی تابع محور مثل فانکشن های خالص (pure functions)، immutable (غیرقابل تغییر) بودن، composition (ترکیب بندی) و currying (پیاده سازی فانکشن های کاری)، استفاده از فانکشن هایی با اولویت بالا تر مثل filter و map و reduce، اعمال تکنیک هایی مثل کلون (clone) کردن آبجکت ها جهت کمتر کردن عوارض جانبی، و تعریف استراتژی هایی برای کمتر کردن منطق imperative (دستوری) و حلقه های for در کد رو خواهید داشت.
معرفی فصل
توی فصل قبلی در مورد اینکه چطور جاوا اسکریپت یک زبان برنامه نویسی چند پارادایمی هست صحبت کردیم. گفتیم که میشه با جاوا اسکریپت بر اساس الگو های شی گرایی، روی ای و تابع محور برنامه نوشت. توی این فصل نگاه نزدیکی به الگوی تابع محور خواهیم داشت.
برنامه نویسی تابع محور یک پارادایم برنامه نویسی هست که طی چند سال گذشته محبوبیتش افزایش پیدا کرده و قبلش توسعه دهنده ها زیاد باهاش آشنایی نداشتن.
جاوا اسکریپت مثل بقیه زبان ها از جمله Haskell ،Scheme و Clojure یک زبان برنامه نویسی کاملا تابع محور نیست، اما میتونه یه سری ساختار های تابعی و تکنیک ها رو در صورتی که بخواید ازشون استفاده کنید ساپورت کنه. دونستن نحوه کار کردن این کانسپت ها و استفاده کردن از اونها میتونه به دردمون بخوره.
برنامه نویسی تابع محور یک سری قابلیت و ویژگی داره که در زیر چند تا از مهم هاش رو گفتیم:
- فانکشن های خالص (Pure Functions)
- immutable بودن و جلوگیری از وضعیت مشترک، دیتای mutable و عوارض جانبی
- دستوری (imperative) نبودن و بجاش اعلانی (declarative) بودن
- فانکشن های مرتبه بالا (Higher-order Functions)
- Compose و Pipe کردن فانکشن
- فانکشن های کاری (Currying Functions)
- کاهش استفاده از ساختار های سنتی کنترل جریان مثل for و while و حتی if
این کانسپت ها رو در طول این فصل بررسی میکنیم، پس اگر الان چیزی ازشون متوجه نشدید، نگران نباشید. برنامه نویسی تابع محور در صورتی که به صورت صحیح پیاده سازی بشه و مورد استفاده قرار بگیره میتونه نتایج قابل پیش بینی تر ارائه بده، خطا های کمتری داشته باشه و نسبت به بقیه روش های برنامه نویسی تست کردنش آسون تر باشه.