Product details
- Publisher : Manning (May 18, 2021)
- Language : English
- Paperback : 550 pages
- ISBN-10 : 1617296201
-
ISBN-13 : 978-1617296208
کتاب Grokking Simplicity: Taming complex software with functional thinking
Grokking Simplicity is a friendly, practical guide that will change the way you approach software design and development.
Summary
Distributed across servers, difficult to test, and resistant to modification—modern software is complex. Grokking Simplicity is a friendly, practical guide that will change the way you approach software design and development. It introduces a unique approach to functional programming that explains why certain features of software are prone to complexity, and teaches you the functional techniques you can use to simplify these systems so that they’re easier to test and debug.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the technology
Developers rightly fear the unintended complexity that infects most code. This book shows you how to write software that keeps complexity close to its inherent minimum. As you write software you should distinguish between code that alters your system’s state, and code that does not. Once you learn to make that distinction, you can refactor much of your state-altering “actions” into stateless “calculations.” Your software will be simpler.
About the book
The book also teaches you to solve the complex timing bugs that inevitably creep into asynchronous and multithreaded code. In advanced sections of the book you learn how composable abstractions help avoid repeating code and open up new levels of expressivity.
What's inside
Patterns for simpler code
Powerful time modeling approaches to simplify asynchronous code
How higher-order functions can make code reusable and composable
About the reader
For intermediate and advanced developers building complex software. Exercises, illustrations, self-assessments, and hands-on examples lock in each new idea.
About the author
Eric Normand is an expert software developer who has been an influential teacher of functional programming since 2007.
Table of Contents
1 Welcome to Grokking Simplicity
2 Functional thinking in action
PART 1 - ACTIONS, CALCULATIONS, AND DATA
3 Distinguishing actions, calculations, and data
4 Extracting calculations from actions
5 Improving the design of actions
6 Staying immutable in a mutable language
7 Staying immutable with untrusted code
8 Stratified design, part 1
9 Stratified design, part 2
PART 2 - FIRST-CLASS ABSTRACTIONS
10 First-class functions, part 1
11 First-class functions, part 2
12 Functional iteration
13 Chaining functional tools
14 Functional tools for nested data
15 Isolating timelines
16 Sharing resources between timelines
17 Coordinating timelines
18 Reactive and onion architectures
19 The functional journey ahead
منابع کتاب کتاب Grokking Simplicity: Taming complex software with functional thinking
Grokking Simplicity یک راهنمای عملی و دوستانه است که رویکرد شما به طراحی و توسعه نرم افزار را تغییر می دهد.
خلاصه
در میان سرورها توزیع شده است، آزمایش آن دشوار است و در برابر اصلاح مقاوم است—نرم افزار مدرن پیچیده است. Grokking Simplicity یک راهنمای عملی و دوستانه است که رویکرد شما به طراحی و توسعه نرم افزار را تغییر می دهد. این یک رویکرد منحصر به فرد برای برنامه نویسی عملکردی معرفی می کند که توضیح می دهد که چرا برخی از ویژگی های نرم افزار مستعد پیچیدگی هستند، و به شما تکنیک های کاربردی را می آموزد که می توانید برای ساده سازی این سیستم ها استفاده کنید تا آزمایش و اشکال زدایی آنها آسان تر باشد.
خرید کتاب چاپی شامل یک کتاب الکترونیکی رایگان در قالبهای PDF، Kindle و ePub از انتشارات منینگ است.
در مورد تکنولوژی
توسعه دهندگان به درستی از پیچیدگی ناخواسته ای که بیشتر کدها را آلوده می کند، می ترسند. این کتاب به شما نشان می دهد که چگونه نرم افزار بنویسید که پیچیدگی را نزدیک به حداقل ذاتی خود نگه دارد. هنگام نوشتن نرم افزار باید بین کدهایی که وضعیت سیستم شما را تغییر می دهند و کدهایی که تغییر نمی دهند تمایز قائل شوید. هنگامی که یاد گرفتید که این تمایز را قائل شوید، می توانید بسیاری از «اقدامات» تغییر دهنده حالت خود را به «محاسبات» بدون حالت تبدیل کنید. نرم افزار شما ساده تر خواهد بود.
درباره کتاب
این کتاب همچنین به شما می آموزد که باگ های پیچیده زمان بندی را که به ناچار به کدهای ناهمزمان و چند رشته ای خزش می کنند، حل کنید. در بخش های پیشرفته کتاب می آموزید که چگونه انتزاعات ترکیبی به جلوگیری از تکرار کد کمک می کند و سطوح جدیدی از بیان را باز می کند.
آنچه در داخل
الگوها برای کدهای ساده تر وجود دارد
روشهای قدرتمند مدلسازی زمان برای سادهسازی کدهای ناهمزمان
چگونه توابع مرتبه بالاتر میتوانند کد را قابل استفاده مجدد و ترکیبسازی کنند
درباره خواننده
برای توسعهدهندگان متوسط و پیشرفته که نرمافزار پیچیده میسازند. تمرینها، تصاویر، خودارزیابیها و مثالهای عملی در هر ایده جدید قفل میکنند.
درباره نویسنده
اریک نورماند توسعه دهنده نرم افزار متخصص است که یک معلم با نفوذ برنامه نویسی تابعی از سال 2007. شده است
فهرست مطالب
1 خوش آمدید به Grokking سادگی
2 تفکر کاربردی در عمل
بخش 1 - اقدامات، محاسبات، و داده ها
3 تشخیص اقدامات، محاسبات، و داده
4 استخراج محاسبات از اقدامات
5 بهبود طراحی
اکشن ها 6 تغییر ناپذیر ماندن در زبانی قابل تغییر
7 تغییر ناپذیر ماندن با کد غیرقابل اعتماد
8 طراحی طبقه بندی شده، قسمت 1
9 طراحی طبقه بندی شده، قسمت 2
قسمت 2 - انتزاعات کلاس
اول 10 توابع درجه یک، قسمت 1
11 درجه یک توابع، قسمت 2
12 تکرار عملکردی
13 ابزارهای عملکردی زنجیره ای
14 ابزارهای کاربردی برای داده های تو در تو
15 جداسازی جدول های زمانی
16 به اشتراک گذاری منابع بین خطوط زمانی
17 خطوط زمانی هماهنگی
18 معماری های واکنشی و پیازی
19 سفر عملکردی پیش رو
ارسال نظر درباره کتاب Grokking Simplicity: Taming complex software with functional thinking