
Taming Complex Software with Functional Thinking
کتاب Grokking Simplicity، نوشتهی اریک نورمند، یک راهنمای عملی و ذهنیتمحور برای توسعهدهندگان با تجربه است که با سیستمهای نرمافزاری پیچیده، توزیعشده و پر از کدهای زائد دستوپنجه نرم میکنند. این کتاب با الهام از برنامهنویسی تابعی، تکنیکها و مهمتر از آن، یک ذهنیت را آموزش میدهد که به شما کمک میکند پیچیدگیهای کد را کاهش دهید، قابلیت تست و استفاده مجدد را افزایش دهید، و با ماهیت ناهمزمان سیستمهای توزیعشده بهتر کنار بیایید. این کتاب با مثالهای عملی، تمرینها و ارزیابیهای متعدد، به شما کمک میکند تا کد خود را برای حداکثر قابلیت استفاده مجدد سازماندهی کنید و پیچیدگیهای ناخواسته را از پایگاه کد خود دور نگه دارید.
اصول برنامهنویسی تابعی: کاهش پیچیدگی کد با استفاده از مفاهیم تابعی.
خطوط لوله تبدیل داده: طراحی کدهایی که تست و استفاده مجدد آنها آسانتر است.
مدلسازی زمان: سادهسازی مدیریت عملیات ناهمزمان در سیستمهای توزیعشده.
تمرینهای عملی: شامل 60 تمرین و 100 سؤال برای آزمایش دانش شما.
طراحی لایهای (Stratified Design): سازماندهی کد برای بهبود خوانایی و نگهداری.
توابع درجه اول: استفاده از توابع بهعنوان ابزارهای قدرتمند برای سادهسازی کد.
مدیریت تغییرناپذیری: حفظ تغییرناپذیری در زبانهای تغییرپذیر و کدهای غیرقابل اعتماد.
معماریهای واکنشی و پیازی: طراحی سیستمهای مقیاسپذیر با معماریهای مدرن.
کتاب Grokking Simplicity با ساختاری منظم و پروژهمحور، شما را از مفاهیم پایه برنامهنویسی تابعی تا تکنیکهای پیشرفته برای سادهسازی سیستمهای پیچیده هدایت میکند. این کتاب در 18 فصل، موضوعات کلیدی زیر را پوشش میدهد:
خوشآمدگویی به گروکینگ Simplicity: معرفی اهمیت سادهسازی در توسعه نرمافزار.
تفکر تابعی در عمل: اعمال مفاهیم تابعی برای حل مشکلات واقعی.
تمایز بین اقدامات، محاسبات و دادهها: درک تفاوتهای کلیدی برای طراحی بهتر کد.
استخراج محاسبات از اقدامات: تبدیل کدهای پیچیده به محاسبات سادهتر.
بهبود طراحی اقدامات: بهینهسازی عملیات برای کاهش پیچیدگی.
تغییرناپذیری در زبانهای تغییرپذیر: حفظ تغییرناپذیری در زبانهایی مانند جاوااسکریپت.
تغییرناپذیری با کد غیرقابل اعتماد: مدیریت تغییرناپذیری در محیطهای غیرقابل پیشبینی.
طراحی لایهای: بخش اول: اصول اولیه طراحی لایهای برای سازماندهی کد.
طراحی لایهای: بخش دوم: تکنیکهای پیشرفته برای بهبود طراحی لایهای.
توابع درجه اول: بخش اول: استفاده از توابع بهعنوان اشیاء درجه اول.
توابع درجه اول: بخش دوم: کاربردهای پیشرفتهتر توابع درجه اول.
تکرار تابعی: جایگزینی حلقههای سنتی با روشهای تابعی.
زنجیره ابزارهای تابعی: ترکیب ابزارهای تابعی برای حل مسائل پیچیده.
ابزارهای تابعی برای دادههای تو در تو: مدیریت دادههای پیچیده با رویکرد تابعی.
ایزولهسازی خطوط زمانی: سادهسازی مدیریت عملیات ناهمزمان.
اشتراک منابع بین خطوط زمانی: هماهنگی منابع در سیستمهای توزیعشده.
هماهنگی خطوط زمانی: مدیریت تعاملات ناهمزمان در سیستمها.
معماریهای واکنشی و پیازی: طراحی سیستمهای مقیاسپذیر و قابل نگهداری.
سفر تابعی پیش رو: جمعبندی و راهنمایی برای ادامه مسیر یادگیری.
کتاب Grokking Simplicity برای افراد زیر مناسب است:
توسعهدهندگان با تجربه: برنامهنویسانی که با سیستمهای پیچیده کار میکنند و به دنبال کاهش پیچیدگی هستند.
توسعهدهندگان علاقهمند به برنامهنویسی تابعی: افرادی که میخواهند اصول تابعی را در هر زبانی اعمال کنند.
مهندسان نرمافزار: حرفهایهایی که به دنبال بهبود قابلیت تست و استفاده مجدد کد هستند.
برنامهنویسان جاوااسکریپت: مثالهای کتاب در جاوااسکریپت ارائه شدهاند، اما اصول آن برای هر زبانی قابل استفاده است.
سیستمهای نرمافزاری مدرن اغلب با پیچیدگیهای ناشی از سرورهای توزیعشده، APIها و کدهای زائد مواجه هستند که تست و نگهداری آنها را دشوار میکند. برنامهنویسی تابعی با ارائه تکنیکهایی مانند تغییرناپذیری، توابع درجه اول و طراحی لایهای، به شما کمک میکند تا کدهایی سادهتر، قابل تستتر و قابل استفاده مجدد بنویسید. این کتاب با آموزش یک ذهنیت تابعی، شما را برای مدیریت پیچیدگیهای سیستمهای توزیعشده و بهبود کیفیت کد آماده میکند.
یکی از نقاط قوت این کتاب، استفاده از 60 تمرین عملی و 100 سؤال ارزیابی است که به شما امکان میدهد مفاهیم را در سناریوهای واقعی پیادهسازی کنید. مثالهای کدنویسی در جاوااسکریپت، همراه با توضیحات واضح و دیاگرامهای دستکشیده، یادگیری را برای توسعهدهندگان در هر سطح آسان میکند. این کتاب نهتنها تکنیکها را آموزش میدهد، بلکه شما را به تغییر ذهنیت برای شناسایی و حذف پیچیدگیهای غیرضروری تشویق میکند.
اریک نورمند، برنامهنویس تابعی از سال 2001 و مربی برنامهنویسی تابعی از سال 2007، بنیانگذار LispCast.com است. او با تجربه گسترده در آموزش آنلاین و حضوری، مفاهیم پیچیده برنامهنویسی تابعی را به شکلی ساده و جذاب ارائه کرده است.
خوشآمدگویی به Grokking Simplicity
تفکر تابعی در عمل
تمایز بین اقدامات، محاسبات و دادهها
استخراج محاسبات از اقدامات
بهبود طراحی اقدامات
تغییرناپذیری در زبانهای تغییرپذیر
تغییرناپذیری با کد غیرقابل اعتماد
طراحی لایهای: بخش اول
طراحی لایهای: بخش دوم
توابع درجه اول: بخش اول
توابع درجه اول: بخش دوم
تکرار تابعی
زنجیره ابزارهای تابعی
ابزارهای تابعی برای دادههای تو در تو
ایزولهسازی خطوط زمانی
اشتراک منابع بین خطوط زمانی
هماهنگی خطوط زمانی
معماریهای واکنشی و پیازی
سفر تابعی پیش رو
نمونه چاپ کتاب موجود نیست.
نظرات کاربران