کتاب Effective Concurrency in Go (همزمانی موثر در Go: توسعه، تجزیه و تحلیل و عیبیابی برنامههای همزمان با کارایی بالا به آسانی) مفاهیم همزمانی یا Concurrency را با استفاده از زبان برنامهنویسی محبوب Go پیادهسازی میکند.
در ادامه مقدمهای از کتاب Effective Concurrency in Go را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Effective Concurrency in Go:
زبانها طرز تفکر ما را شکل میدهند. نحوه برخورد ما با مسائل و ارائه راه حل برای آنها به مفاهیمی بستگی دارد که میتوانیم با استفاده از زبان بیان کنیم. این در مورد زبانهای برنامهنویسی نیز صادق است. با توجه به یک مشکل، برنامههای نوشته شده برای حل آن ممکن است از زبانی به زبان دیگر متفاوت باشد. این کتاب در مورد نوشتن برنامهها با بیان الگوریتمهای همزمان در زبان Go و درک نحوه رفتار این برنامهها است.
Go با تاکید بر قابل فهم بودن با بسیاری از زبانهای رایج متفاوت است. این همان خوانایی نیست. بسیاری از برنامههایی که به زبانهای خوانا نوشته شده اند قابل درک نیستند. در گذشته من نیز در دام نوشتن برنامههای منظم با استفاده از چارچوبهایی افتادم که برنامهنویسی را آسان میکند.
مشکل این رویکرد این است که پس از پایان نوشتن، برنامه زندگی خود را شروع میکند و دیگران نگهداری آن را بر عهده میگیرند. دانش قبیله ای که در مرحله توسعه تکامل یافته است از بین میرود و تیم با برنامهای باقی میماند که بدون کمک آخرین فرد باقیمانده از تیم توسعه اصلی نمیتوانند آن را درک کنند. توسعه یک برنامه تفاوت چندانی با نوشتن یک رمان ندارد. رمانی نوشته میشود تا دیگران هم بخوانند. برنامهها هم همینطور. اگر هیچکس نتواند برنامه شما را درک کند، به خوبی پیر نمیشود.
کتاب Effective Concurrency in Go سعی میکند نحوه تفکر در زبان Go را با استفاده از ساختارهای همزمان توضیح دهد تا بتوانید درک کنید که وقتی یک کد به شما داده میشود، برنامه چگونه رفتار میکند و دیگران بتوانند آنچه را که تولید میکنید درک کنند. با یک مرور سطح بالا از همزمانی و برخورد Go با آن شروع میشود. سپس با استفاده از الگوریتمهای همزمان روی چندین مشکل پردازش داده کار خواهد کرد. از این گذشته، برنامهها برای مقابله با دادهها نوشته شده اند.
من امیدوارم که دیدن اینکه چگونه الگوهای همزمانی به طور ارگانیک در هنگام حل مشکلات زندگی واقعی توسعه مییابند، میتواند به شما کمک کند تا مهارتهای استفاده کارآمد و مؤثر از زبان را به دست آورید. فصلهای بعدی بر روی نمونههای بیشتری از جمله زمانبندی، وظایف دورهای، برنامهنویسی سرور، استریم و کاربردهای عملی اتمی کار خواهند کرد. فصل آخر در مورد عیب یابی، اشکال زدایی و ابزار دقیق مفید برای مقیاس پذیری صحبت خواهد کرد.
پرداختن به همه موضوعات مرتبط با همزمانی در یک کتاب غیرممکن است. بسیاری از مناطق ناشناخته باقی مانده است. با این حال، من مطمئن هستم که پس از بررسی مثالها، اعتماد به نفس بیشتری در حل مشکلات با استفاده از همزمانی خواهید داشت. همه میگویند همزمانی سخت است. استفاده صحیح از زبان، تولید برنامههای صحیح را آسانتر میکند. قاعده کلی که باید همیشه به خاطر بسپارید این است که صحت مقدم بر عملکرد است. بنابراین، ابتدا آن را درست کار کنید، سپس میتوانید آن را سریعتر انجام دهید.
کتاب Effective Concurrency in Go برای چه کسی است؟
اگر توسعهدهندهای هستید که دانش اولیه زبان Go را دارید و به دنبال کسب تخصص در توسعه برنامههای پشتیبان بسیار همزمان هستید، این کتاب برای شماست. این کتاب همچنین برای توسعه دهندگان Go با سطوح مختلف تجربه در ساختن سیستمهای باطن خود قوی تر و مقیاس پذیرتر است.
آنچه کتاب Effective Concurrency in Go پوشش میدهد:
فصل 1، همزمانی: مروری اجمالی در سطح بالا، در مورد اینکه همزمانی چیست و چه چیزی نیست – به ویژه نحوه ارتباط آن با موازی سازی صحبت میکند. پارادایمهای حافظه مشترک و انتقال پیام و مفاهیم همزمانی رایج مانند نژاد، اتمی، زنده بودن و بن بست نیز در این فصل معرفی شده اند.
فصل 2، Go Concurrency Primitives، مقدمات زبان Go را برای برنامهنویسی همزمان معرفی میکند – یعنی گوروتینها، کانالها، mutexes، گروههای انتظار و متغیرهای شرط.
فصل 3 کتاب Effective Concurrency in Go، مدل حافظه Go، در مورد تضمینهای دید عملیات حافظه صحبت میکند. این رابطه قبل از وقوع را معرفی میکند که به شما امکان میدهد در مورد رفتار همزمان استدلال کنید، سپس به حافظه ضمانتهای دید اولیه همزمان و برخی از امکانات استاندارد کتابخانه میدهد.
فصل 4، برخی از مسائل شناخته شده همزمانی، مسئله معروف تولید کننده/مصرف کننده، مسئله فیلسوفان غذاخوری و محدودیت نرخ را مورد مطالعه قرار میدهد.
فصل 5 کتاب Effective Concurrency in Go، استخرها و خطوط لوله کارگران، ابتدا استخرهای کارگران را مورد مطالعه قرار میدهد، که روشی متداول برای پردازش مقادیر زیادی از دادهها با همزمانی محدود است. سپس، چندین پیاده سازی خط لوله داده همزمان را برای برنامههای کاربردی پردازش داده کارآمد توسعه میدهد.
فصل 6 کتاب Effective Concurrency in Go، مدیریت خطا، نحوه برخورد با خطاها و وحشت در یک برنامه همزمان و نحوه عبور خطاها را بررسی میکند.
فصل 7، تایمرها و تیکرها، نحوه انجام کارها به صورت دوره ای و نحوه انجام کارها را مدتی بعد نشان میدهد.
فصل 8 کتاب Effective Concurrency in Go، رسیدگی به درخواستها به طور همزمان، بیشتر در مورد برنامه نویسی سرور صحبت میکند، اما بسیاری از مفاهیم مورد بحث در این فصل به طور گسترده در مورد رسیدگی به درخواستها هستند، بنابراین میتوان آنها را در طیف گسترده ای از سناریوها اعمال کرد. نحوه استفاده موثر از زمینه، نحوه توزیع کار و جمعآوری نتایج، نحوه محدود کردن همزمانی، و نحوه پخش جریانی دادهها را شرح میدهد.
فصل 9، عملیات حافظه اتمی، عملیات حافظه اتمی، ضمانت حافظه آنها و کاربردهای عملی آنها را پوشش میدهد.
فصل 10، عیبیابی مشکلات همزمانی، در مورد مهارت کم ارزشگذاریشده اما ضروری خواندن ردپای پشتهها، و نحوه تشخیص خرابیها و بهبود آنها در زمان اجرا صحبت میکند.
سرفصلهای کتاب Effective Concurrency in Go:
- Cover
- Title Page
- Copyright and Credit
- Dedicated
- Contributors
- Table of Contents
- Preface
- Chapter 1: Concurrency – A High-Level Overview
- Chapter 2: Go Concurrency Primitives
- Chapter 3: The Go Memory Model
- Chapter 4: Some Well-Known Concurrency Problems
- Chapter 5: Worker Pools and Pipelines
- Chapter 6: Error Handling
- Chapter 7: Timers and Tickers
- Chapter 8: Handling Requests Concurrently
- Chapter 9: Atomic Memory Operations
- Chapter 10: Troubleshooting Concurrency Issues
- Index
- Other Books You May Enjoy
جهت دانلود کتاب Effective Concurrency in Go میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.