کتاب Functional Python Programming (برنامهنویسی کاربردی پایتون: از یک رویکرد کاربردی برای نوشتن کد پایتون مختصر، رسا و کارآمد استفاده کنید، ویرایش سوم) از جدیدترین منابع آموزشی برنامهنویسی پایتون است که در 16 فصل به صورت کاربردی و عملیاتی این زبان را آموزش میدهد.
در ادامه مقدمهای از کتاب Functional Python Programming را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Functional Python Programming:
برنامهنویسی تابعی تکنیکهای مختلفی را برای ایجاد نرم افزار مختصر و رسا ارائه میدهد. در حالی که پایتون یک زبان برنامهنویسی کاملا کاربردی نیست، ما می توانیم برنامهنویسی تابعی زیادی را در پایتون انجام دهیم.
پایتون دارای مجموعه ای اصلی از ویژگیهای برنامهنویسی کاربردی است. این به ما امکان میدهد تا بسیاری از الگوها و تکنیکهای طراحی را از زبانهای کاربردی دیگر قرض بگیریم. این مفاهیم وام گرفته شده می تواند ما را به سمت ایجاد برنامههای زیبا سوق دهد. عبارات مولد پایتون، به ویژه، نیاز به ایجاد ساختارهای داده بزرگ در حافظه را نفی می کند و منجر به برنامههایی می شود که ممکن است سریعتر اجرا شوند زیرا از منابع کمتری استفاده می کنند.
ما نمیتوانیم به راحتی برنامههای کاملاً کاربردی در پایتون ایجاد کنیم. پایتون فاقد تعدادی ویژگی است که برای این کار لازم است. ما بازگشت نامحدود نداریم، به عنوان مثال، ما ارزیابی تنبلی از همه عبارات نداریم، و ما یک کامپایلر بهینه سازی نداریم.
چندین ویژگی کلیدی زبانهای برنامهنویسی تابعی وجود دارد که در پایتون موجود است. یکی از مهمترین آنها این است که توابع اشیاء درجه یک هستند. پایتون همچنین تعدادی توابع درجه بالاتر را ارائه میدهد. توابع داخلی map()، filter() و functools.reduce() بطور گسترده در این نقش استفاده می شوند و توابعی مانند sorted()، min() و max() کمتر مشخص هستند.
در برخی موارد، یک رویکرد کاربردی به یک مسئله همچنین منجر به الگوریتمهایی با کارایی بسیار بالا میشود. پایتون ایجاد ساختارهای داده میانی بزرگ را بسیار آسان میکند و حافظه (و زمان پردازشگر) را محدود میکند. با الگوهای طراحی برنامهنویسی کاربردی، ما اغلب میتوانیم لیستهای بزرگ را با عبارات مولد جایگزین کنیم که به همان اندازه گویا هستند اما حافظه بسیار کمتری را اشغال میکنند و با سرعت بیشتری اجرا میشوند.
ما ویژگیهای اصلی برنامهنویسی تابعی را از دیدگاه پایتون بررسی خواهیم کرد. هدف ما قرض گرفتن ایدههای خوب از زبانهای برنامهنویسی تابعی و استفاده از آن ایدهها برای ایجاد برنامههای کاربردی رسا و مختصر در پایتون است.
بیشتر بخوانید: کتاب Python Data Structures Pocket Primer
کتاب Functional Python Programming برای چه کسی است؟
این کتاب برای برنامه نویسان با تجربه تر است که میخواهند با استفاده از تکنیکها و الگوهای طراحی از زبانهای برنامهنویسی تابعی، برنامههای مختصر و رسا پایتون ایجاد کنند. برخی از الگوریتمها را میتوان به زیبایی در یک سبک عملکردی بیان کرد. ما میتوانیم – و باید – این را برای خوانایی و نگهداری برنامههای پایتون تطبیق دهیم.
این به عنوان آموزش پایتون در نظر گرفته نشده است. این کتاب آشنایی با زبان و کتابخانه استاندارد را فرض میکند. برای معرفی اساسی پایتون، آموزش برنامهنویسی پایتون، ویرایش سوم را در نظر بگیرید: https://www.packtpub.com/product/learn-python-programming-third-edition/9781801815093.
در حالی که ما مبانی برنامهنویسی تابعی را پوشش میدهیم، این بررسی کاملی از انواع مختلف تکنیکهای برنامهنویسی تابعی نیست. قرار گرفتن در معرض برنامهنویسی کاربردی به زبان دیگر میتواند مفید باشد.
آنچه کتاب Functional Python Programming پوشش میدهد:
ما میتوانیم این کتاب را به دو نوع موضوع کلی تقسیم کنیم:
ملزومات برنامهنویسی تابعی در پایتون این محتوای فصل 1 تا 7 است.
ماژولهای کتابخانه برای کمک به ایجاد برنامههای کاربردی. این موضوع فصلهای باقی مانده از کتاب است. فصل 12 شامل مباحث اساسی زبان و کتابخانه است.
فصل 1، درک برنامهنویسی تابعی، برخی از تکنیکهایی را که مشخصه برنامهنویسی تابعی هستند، معرفی میکند. ما برخی از راههای نگاشت آن ویژگیها را به پایتون شناسایی میکنیم.
ما همچنین به برخی از راههایی اشاره میکنیم که مزایای برنامهنویسی تابعی زمانی که از این الگوهای طراحی برای ساخت برنامههای پایتون استفاده میکنیم به دست میآیند.
فصل 2 کتاب Functional Python Programming، معرفی مفاهیم کاربردی ضروری، به ویژگیهای اصلی پارادایم برنامهنویسی عملکردی میپردازد. ما هر کدام را با جزئیات بررسی میکنیم تا ببینیم چگونه در پایتون پیاده سازی شدهاند.
همچنین به برخی از ویژگیهای زبانهای تابعی اشاره میکنیم که به خوبی در پایتون اعمال نمیشوند. به طور خاص، بسیاری از زبانهای کاربردی دارای قوانین تطبیق نوع پیچیده ای هستند که برای پشتیبانی از کامپایل و بهینهسازی لازم است.
فصل 3 کتاب Functional Python Programming، توابع، تکرار کنندهها و مولدها، نحوه استفاده از اشیاء غیرقابل تغییر پایتون را نشان میدهد و چگونه عبارات مولد مفاهیم برنامهنویسی کاربردی را با زبان پایتون تطبیق میدهند. ما به برخی از مجموعههای داخلی پایتون و اینکه چگونه میتوانیم بدون فاصله گرفتن از مفاهیم برنامهنویسی عملکردی از آنها استفاده کنیم، خواهیم دید.
فصل 4 کتاب Functional Python Programming، کار با مجموعهها، نشان میدهد که چگونه می توانید از تعدادی توابع داخلی پایتون برای کار بر روی مجموعه دادهها استفاده کنید. این فصل بر روی تعدادی از توابع نسبتا ساده مانند any() و all() تمرکز خواهد کرد که مجموعه ای از مقادیر را به یک نتیجه کاهش میدهد.
فصل 5، توابع مرتبه بالاتر، به بررسی توابع مرتبه بالاتر رایج مانند map() و filter() می پردازد. همچنین تعدادی دیگر از توابع مرتبه بالاتر و همچنین نحوه ایجاد توابع خودمان که با توابع یا توابع بازگشتی کار می کنند را نشان میدهد.
فصل 6 کتاب Functional Python Programming، بازگشتها و کاهشها، نحوه طراحی یک الگوریتم با استفاده از بازگشت و سپس بهینهسازی آن را به یک بیانیه با کارایی بالا آموزش میدهد. ما همچنین به برخی کاهشهای دیگر که به طور گسترده استفاده میشوند، از جمله collections.Counter().
فصل 7 کتاب Functional Python Programming، اشیاء بدون حالت پیچیده، تعدادی از راهها را نشان میدهد که میتوانیم از تاپلهای تغییرناپذیر، تایپ کردن.NamedTuple و یخزده @dataclass بهجای اشیاء حالتدار استفاده کنیم. ما همچنین به ماژول pyrsistent به عنوان راهی برای ایجاد اشیاء تغییرناپذیر نگاه خواهیم کرد. اشیاء غیرقابل تغییر رابط کاربری ساده تری نسبت به اشیاء حالت دار دارند: ما هرگز نباید نگران سوء استفاده از یک ویژگی و قرار دادن یک شی در حالت ناسازگار یا نامعتبر باشیم.
فصل 8 کتاب Functional Python Programming، ماژول Itertools، تعدادی از عملکردها را در ماژول کتابخانه استاندارد itertools بررسی میکند. این مجموعه از توابع نوشتن برنامههایی را که با مجموعهها یا توابع مولد سروکار دارند را ساده میکند.
فصل 9، Itertools برای Combinatorics – جایگشتها و ترکیبات، توابع ترکیبی در ماژول itertools را پوشش میدهد. این توابع تخصصی تر از عملکردهای فصل قبل هستند. این فصل شامل چند مثال است که استفاده نادرست از این توابع و پیامدهای انفجار ترکیبی را نشان میدهد.
فصل 10 کتاب Functional Python Programming، ماژول Functools، بر نحوه استفاده از برخی از توابع در ماژول functools برای برنامهنویسی عملکردی تمرکز دارد. چند کارکرد در این ماژول برای دکوراتورهای ساختمان مناسبتر است و آنها را برای فصل 12، تکنیکهای طراحی دکوراتور گذاشتهاند.
فصل 11، بسته ابزار، بسته toolz را پوشش میدهد، تعدادی از ماژولهای نزدیک به هم که به ما در نوشتن برنامههای کاربردی در پایتون کمک می کند. ماژولهای toolz با ماژولهای itertools و functools داخلی موازی میشوند و جایگزینهایی را ارائه میدهند که اغلب پیچیدهتر هستند و از توابع ساخته شده استفاده بهتری میکنند.
فصل 12 کتاب Functional Python Programming، تکنیکهای طراحی دکوراتور، به این موضوع میپردازد که چگونه میتوانیم به یک دکوراتور بهعنوان روشی برای ساخت یک تابع ترکیبی نگاه کنیم. در حالی که در اینجا انعطافپذیری قابلتوجهی وجود دارد، محدودیتهای مفهومی نیز وجود دارد: ما راههایی را بررسی خواهیم کرد که دکوراتورهای بیش از حد پیچیده میتوانند به جای اینکه مفید باشند، گیجکننده شوند.
فصل 13، کتابخانه PyMonad، برخی از ویژگیهای کتابخانه PyMonad را بررسی میکند. این ویژگیهای برنامهنویسی کاربردی اضافی را فراهم میکند. همچنین راهی برای یادگیری بیشتر در مورد مونادها فراهم میکند. در برخی از زبانهای کاربردی، مونادها راه مهمی برای اعمال یک نظم خاص برای عملیاتی هستند که ممکن است به ترتیب نامطلوب بهینه شوند. از آنجایی که پایتون قبلاً ترتیب دقیق عبارات و عبارات را دارد، ویژگی monad بیشتر آموزنده است تا کاربردی.
فصل 14 کتاب Functional Python Programming، ماژولهای Multiprocessing، Threading و Concurrent.Futures، به یک پیامد مهم طراحی عملکردی خوب اشاره میکند: ما میتوانیم حجم کار پردازش را توزیع کنیم. استفاده از اشیای تغییرناپذیر به این معنی است که نمیتوانیم یک شی را به دلیل عملیات نوشتن ضعیف همگامسازی کنیم.
فصل 15، یک رویکرد کاربردی به خدمات وب، نشان میدهد که چگونه می توانیم خدمات وب را به عنوان مجموعهای تودرتو از توابع در نظر بگیریم که یک درخواست را به یک پاسخ تبدیل میکند. ما راههایی را برای استفاده از مفاهیم برنامهنویسی کاربردی برای ایجاد محتوای وب پاسخگو و پویا خواهیم دید.
فصل 16 کتاب Functional Python Programming، مطالعه موردی Chi-Squared، یک مطالعه موردی منحصر به فرد آنلاین است که تعدادی از تکنیکهای برنامهنویسی کاربردی را برای یک مشکل تجزیه و تحلیل دادههای اکتشافی خاص به کار میبرد.
ما یک آزمون آماری χ2 را برای برخی از دادههای پیچیده اعمال میکنیم تا ببینیم آیا نتایج تغییرپذیری معمولی را نشان میدهند یا این که آیا آنها نشانه چیزی هستند که نیاز به تجزیه و تحلیل عمیقتری دارد. میتوانید مطالعه موردی را در اینجا پیدا کنید: https://github.com/PacktPublishing/Functional-Python-Programming-3rd-Edition/blob/main/Bonus_Content/Chapter_16.pdf.
سرفصلهای کتاب Functional Python Programming:
- Preface
- Chapter 1: Understanding Functional Programming
- Chapter 2: Introducing Essential Functional Concepts
- Chapter 3: Functions, Iterators, and Generators
- Chapter 4: Working with Collections
- Chapter 5: Higher-Order Functions
- Chapter 6: Recursions and Reductions
- Chapter 7: Complex Stateless Objects
- Chapter 8: The Itertools Module
- Chapter 9: Itertools for Combinatorics – Permutations and Combinations
- Chapter 10: The Functools Module
- Chapter 11: The Toolz Package
- Chapter 12: Decorator Design Techniques
- Chapter 13: The PyMonad Library
- Chapter 14: The Multiprocessing, Threading, and Concurrent.Futures Modules
- Chapter 15: A Functional Approach to Web Services
- Other Books You Might Enjoy
- Index
جهت دانلود کتاب Functional Python Programming میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.