کتاب Mastering JavaScript Functional Programming (تسلط بر برنامهنویسی تایعی جاوا اسکریپت: با استفاده از جاوا اسکریپت و تایپ اسکریپت، کدهای وب و سرور تمیز، قوی و قابل نگهداری بنویسید، ویرایش سوم) یک راهنمای کامل و جامع جاوااسکریپت و TypeScript است که در 12 فصل به صورت تخصصی و کاربردی به آموزش این زبان محبوب خواهد پرداخت.
در ادامه مقدمهای از کتاب Mastering JavaScript Functional Programming را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Mastering JavaScript Functional Programming:
در برنامهنویسی کامپیوتر، پارادایمها فراوانند. برخی از نمونهها عبارتند از برنامهنویسی ضروری، برنامهنویسی ساختاریافته (بدون رفتن)، برنامهنویسی شی گرا (OOP)، برنامهنویسی جنبهگرا و برنامهنویسی اعلانی.
اخیراً، علاقه مجددی به پارادایم خاصی پیدا شده است که میتوان آن را قدیمیتر از اکثر (اگر نه همه) موارد ذکر شده در نظر گرفت – برنامهنویسی کاربردی (FP). FP بر نوشتن توابع و اتصال آنها به روشهای ساده برای تولید کد قابل فهم تر و آزمایش راحت تر تأکید میکند. بنابراین، با توجه به افزایش پیچیدگی برنامههای کاربردی وب امروزی، منطقی است که روش ایمن تر و تمیزتر برنامهنویسی مورد توجه قرار گیرد.
این علاقه به FP همراه با تکامل جاوا اسکریپت است. علیرغم ایجاد تا حدودی عجولانه آن (که طبق گزارشها تنها در 10 روز، در سال 1995، توسط برندان ایچ در نت اسکیپ به دست آمد)، امروزه، جاوا اسکریپت یک زبان استاندارد شده و به سرعت در حال رشد است، با ویژگیهای پیشرفته تر از سایر زبانهای محبوب مشابه. فراگیر بودن این زبان که اکنون در مرورگرها، سرورها، تلفنهای همراه و غیره یافت میشود، علاقه به استراتژیهای توسعه بهتر را نیز برانگیخته است.
همچنین، حتی اگر جاوا اسکریپت بهعنوان یک زبان کاربردی در نظر گرفته نشده باشد، واقعیت این است که تمام ویژگیهایی را که برای کار به این روش نیاز دارید، فراهم میکند، که یک مزیت دیگر است.
بیشتر بخوانید: کتاب JavaScript from Frontend to Backend
گفتنی است، ما باید در مورد پیشرفتهای زبان و ابزارهای مرتبط نیز اظهار نظر کنیم. مزایای تایپ داده به طور کلی تایید شده است، و در سالهای اخیر، TypeScript مورد استقبال گسترده قرار گرفته است و برای هر دو برنامهنویسی frontend و backend استفاده شده است. پس منطقی است که استفاده از آن را نیز در این کتاب لحاظ کنیم. ما احساس میکنیم که این مثالها را واضح تر میکند و همچنین پذیرش کد ارائه شده را برای مشاغل “زندگی واقعی” سادهتر میکند.
همچنین باید گفت که FP به طور کلی در صنعت مورد استفاده قرار نگرفته است، احتمالاً به این دلیل که هالهای از دشواری دارد، و تصور میشود که تئوری است تا عملی، حتی ریاضی، و احتمالاً از واژگان و مفاهیمی استفاده میکند که برای آنها بیگانه است. توسعهدهندگان – برای مثال، تابعها، مونادها، فولدینگ و نظریه دسته. در حالی که یادگیری همه این تئوری مطمئنا کمک کننده خواهد بود، همچنین میتوان استدلال کرد که حتی با دانش صفر از اصطلاحات قبلی، میتوانید اصول FP را درک کنید و ببینید که چگونه آن را در برنامهنویسی خود اعمال کنید.
FP کاری نیست که شما به تنهایی و بدون هیچ کمکی انجام دهید. کتابخانهها و چارچوبهای زیادی وجود دارند که مفاهیم FP را به میزان کم یا زیاد در خود جای دادهاند. شروع با jQuery (که شامل برخی مفاهیم FP میشود)، عبور از Underscore و نزدیکان آن، Lodash، و کتابخانههای دیگر مانند Ramda، و رسیدن به ابزارهای توسعه وب کاملتر مانند React و Redux، Angular و Elm (100) % زبان تابعی که در جاوا اسکریپت کامپایل میشود، فهرست کمکهای کاربردی برای کدنویسی شما روز به روز در حال افزایش است.
یادگیری نحوه استفاده از FP میتواند سرمایهگذاری ارزشمندی باشد، و حتی اگر ممکن است نتوانید از همه روشها و تکنیکهای آن استفاده کنید، فقط شروع به استفاده از برخی از آنها با کد بهتری سود میرساند.
لازم نیست از همان ابتدا سعی کنید تمام مفاهیم FP را اعمال کنید، و همچنین لازم نیست سعی کنید همه ویژگیهای غیر کاربردی در جاوا اسکریپت را رها کنید. جاوا اسکریپت مطمئناً دارای برخی ویژگیهای بد است، اما چندین ویژگی بسیار خوب و قدرتمند نیز دارد. ایده این نیست که همه چیزهایی را که یاد گرفته اید دور نریزید و از آن استفاده کنید و یک روش 100٪ کاربردی را اتخاذ کنید. بلکه ایده راهنما تکامل است نه انقلاب. از این نظر، میتوان گفت که کاری که ما انجام خواهیم داد FP نیست، بلکه برنامهنویسی تابعی Sorta (SFP) است که هدف آن تلفیقی از پارادایمها است.
نظر نهایی در مورد سبک کد در این کتاب – کاملاً درست است که چندین کتابخانه بسیار خوب وجود دارد که ابزارهای FP را در اختیار شما قرار میدهند: Underscore، Lodash و Ramda از جمله آنها هستند. با این حال، ترجیح دادم از استفاده از آنها اجتناب کنم زیرا میخواستم نشان دهم که کارها واقعا چگونه کار میکنند.
اعمال یک تابع مشخص از یک بسته یا بسته دیگر آسان است، اما با کدنویسی همه چیز (در صورت تمایل FP وانیل)، اعتقاد من این است که میتوانید چیزها را عمیقتر درک کنید. همچنین، همانطور که در برخی جاها نظر خواهم داد، به دلیل قدرت و وضوح عملکردهای پیکان و سایر ویژگیها، درک نسخههای جاوا اسکریپت خالص میتواند حتی ساده تر باشد!
کتاب Mastering JavaScript Functional Programming برای چه کسی است؟
این کتاب برای برنامه نویسانی با دانش کاری خوب از جاوا اسکریپت (یا بهتر است بگوییم، TypeScript) که در سمت مشتری (مرورگرها) یا سمت سرور (Node.js) کار میکنند، که علاقه مند به استفاده از تکنیکهایی هستند تا بتوانند کدهای بهتر، قابل آزمایش، قابل فهم و قابل نگهداری بنویسید. برخی از پیشینه در علوم کامپیوتر (از جمله، به عنوان مثال، ساختار داده) و شیوههای برنامهنویسی خوب نیز مفید خواهد بود. در این کتاب به صورت عملی به FP میپردازیم، هرچند گاهی به نکات نظری اشاره میکنیم.
آنچه کتاب Mastering JavaScript Functional Programming پوشش میدهد:
فصل 1، عملکردی شدن – چندین سؤال، FP را مورد بحث قرار میدهد، دلایل استفاده از آن را بیان میکند، و ابزارهایی را که برای استفاده از بقیه کتاب به آنها نیاز دارید، فهرست میکند.
فصل 2 کتاب Mastering JavaScript Functional Programming، تفکر عملکردی – یک مثال اول، اولین مثال از FP را با در نظر گرفتن یک مشکل رایج مرتبط با وب و بررسی چندین راه حل ارائه میدهد تا در نهایت بر روی یک راه حل کاربردی تمرکز کنید.
فصل 3 کتاب Mastering JavaScript Functional Programming، شروع کار با توابع – یک مفهوم اصلی، به مفهوم مرکزی FP، یعنی توابع، و گزینههای مختلف موجود در جاوا اسکریپت میپردازد.
فصل 4 کتاب Mastering JavaScript Functional Programming، رفتار صحیح – توابع خالص، مفهوم خلوص و توابع خالص را در نظر میگیرد و نشان میدهد که چگونه به کدگذاری سادهتر و آزمایش آسانتر منجر میشود.
فصل 5، برنامهنویسی به صورت اعلامی – یک سبک بهتر، از ساختارهای داده ساده برای نشان دادن نحوه تولید نتایجی استفاده میکند که نه به روشی ضروری، بلکه به شیوه ای اعلامی کار میکنند.
فصل 6 کتاب Mastering JavaScript Functional Programming، تولید توابع – توابع مرتبه بالاتر، به توابع مرتبه بالاتر میپردازد، که توابع دیگر را به عنوان پارامتر دریافت میکنند و توابع جدیدی را به عنوان نتیجه تولید میکنند.
در فصل 7 کتاب Mastering JavaScript Functional Programming، توابع تبدیل – کارکردن و کاربرد جزئی، روشهایی برای تولید عملکردهای جدید و تخصصی از توابع قبلی بررسی میشود.
فصل 8 کتاب Mastering JavaScript Functional Programming، توابع اتصال – خط لوله، ترکیب و موارد دیگر، مفاهیم کلیدی در مورد چگونگی ساخت توابع جدید با پیوستن به توابع تعریف شده قبلی را نشان میدهد.
فصل 9 کتاب Mastering JavaScript Functional Programming، طراحی توابع – بازگشت، به چگونگی کاربرد یک مفهوم کلیدی در FP، بازگشت، برای طراحی الگوریتمها و توابع میپردازد.
فصل 10، تضمین خلوص – تغییرناپذیری، ابزارهایی را ارائه میکند که میتوانند با ارائه اشیاء و ساختارهای داده تغییرناپذیر به شما کمک کنند تا به روشی خالص کار کنید.
فصل 11 کتاب Mastering JavaScript Functional Programming، پیادهسازی الگوهای طراحی – روش عملکردی، نشان میدهد که چگونه چندین الگوی طراحی OOP محبوب پیادهسازی میشوند (یا نیازی ندارند!) زمانی که شما به روشهای FP برنامهریزی میکنید.
فصل 12 کتاب Mastering JavaScript Functional Programming، ساخت کانتینرهای بهتر – انواع دادههای عملکردی، برخی از الگوهای عملکردی سطح بالا را بررسی میکند، انواع، کانتینرها، تابعها، مونادها و چندین مفهوم پیشرفته تر FP را معرفی میکند.
من سعی کردهام مثالهای کتاب Mastering JavaScript Functional Programming را ساده و ساده نگه دارم، زیرا میخواهم روی جنبههای کاربردی تمرکز کنم و نه بر پیچیدگیهای این یا آن مشکل. برخی از متون برنامهنویسی برای یادگیری، مثلاً یک چارچوب معین، و سپس کار بر روی یک مسئله معین طراحی شده اند و نشان میدهند که چگونه میتوان آن را به طور کامل با ابزارهای انتخاب شده حل کرد.
در واقع، در مراحل اولیه برنامهریزی برای این کتاب، ایده توسعه برنامهای را به ذهنم خطور کرد که از همه چیزهای FP که در ذهن داشتم استفاده کند، اما هیچ راهی برای جا دادن همه آنها در یک پروژه واحد وجود نداشت.
با کمی اغراق، احساس میکردم که یک دکتر هستم که تلاش میکند بیماری را پیدا کند که تمام دانش پزشکی و درمانهایش را روی او اعمال کند! بنابراین، من تصمیم گرفتم تعداد زیادی از تکنیکهای فردی را نشان دهم که میتوانند در موقعیتهای مختلف مورد استفاده قرار گیرند. به جای ساختن یک خانه، میخواهم به شما نشان دهم که چگونه آجرها را کنار هم قرار دهید، چگونه چیزها را سیمکشی کنید، و غیره، تا بتوانید هر آنچه را که نیاز دارید، آنطور که صلاح میدانید اعمال کنید.
سرفصلهای کتاب Mastering JavaScript Functional Programming:
- Cover
- Title Page
- Copyright and Credits
- Contributors
- About the reviewers
- Table of Contents
- Preface
- Chapter 1: Becoming Functional – Several Questions
- Chapter 2: Thinking Functionally – A First Example
- Chapter 3: Starting Out with Functions – A Core Concept
- Chapter 4: Behaving Properly – Pure Functions
- Chapter 5: Programming Declaratively – A Better Style
- Chapter 6: Producing Functions – Higher-Order Functions
- Chapter 7: Transforming Functions – Currying and Partial Application
- Chapter 8: Connecting Functions – Pipelining, Composition, and More
- Chapter 9: Designing Functions – Recursion
- Chapter 10: Ensuring Purity – Immutability
- Chapter 11: Implementing Design Patterns – The Functional Way
- Chapter 12: Building Better Containers – Functional Data Types
- Answers to Questions
- Bibliography
- Index
- Other Books You May Enjoy
جهت دانلود کتاب Mastering JavaScript Functional Programming میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.