کتاب Mastering Go جدیدترین کتاب حال حاضر برای آموزش زبان برنامهنویسی Go یا GoLang میباشد. این کتاب حدود 800 صفحه و شامل 14 فصل مختلف بوده که از مفاهیم پایه و اساسی این زبان تا مفاهیم پیشرفته مانند یادگیری ماشین و همزمانی را آموزش میدهد.
برای مطالعه تخصصی درباره زبان برنامهنویسی Go و کاربرد آن در یادگیری ماشین میتوانید کتاب Machine Learning with Go را مطالعه کنید.
در ادامه به بررسی سرفصلهای مختلف کتاب Mastering Go میپردازیم.
مروری بر کتاب Mastering Go (راهنمای زبان Go):
فصل 1: زبان Go و سیستم عامل
در فصل 1، ارتباط زبان برنامهنویسی Go و سیستم عامل شرح داده میشود. همچنین تاریخچهای در مورد این زبان برنامهنویسی و مزایای آن، نحوه رفتار کامپایلر این زبان و نحوه اجرای برنامه توسط کامپایلر بررسی و شرح داده خواهد شد. قبل از شرح خصوصیات و زبان Go، مروری کوتاه بر godoc خواهد شد. خروجی گرفتن از برنامه، کار با آرگومانهای خط فرمان، استفاده از پروندههای log و مدیریت خطا نیز آخرین بخش از فصل 1 خواهد بود.
برای دانلود زبان Go و کار با کامپایلر آن میتوانید مستقیماً از سایت Go استفاده و بارگیری کنید.
فصل 2: یادگیری توابع داخلی زبان Go
در فصل 2 کتاب Mastering Go، در مورد توابع داخلی در Go بحث خواهد شد. نحوه انجام بازیافت حافظه یا Garbage Collector در این زبان و راههای اجرای آن، کدهای امن و غیر امن، نحوه تماس با کدهای زبان برنامهنویسی C از طریق زبان Go و همچنین برعکس نیز بحث و بررسی خواهد شد. از دیگر مفاهیمی که در این فصل گفته خواهد شد، کلمه کلیدی defer و ابزارهای strace و dtrace خواهد بود. در پایان فصل، درباره محیط زبان Go، استفاهد از اسمبلر این زبان و نحوه تولید کدهای WebAsselmbley مطالبی را خواهید آموخت.
فصل 3: کار با انواع دادههای پایه زبان Go
در فصل 3 کتاب Mastering Go، کار با انواع دادههای پایه در زبان Go و همچنین دادههای ارائه شده در این زبان توضیح داده خواهد شد. این دادهها شامل، آرایهها، مفهوم برش و نقشه در زبان Go، نشانگرها، ثابتها، حلقهها و کار با تاریخ و زمان خواهد بود و یکی از مهمترین و اساسیترین فصلهای این کتاب میباشد.
فصل 4: موارد استفاده از ساختارها و پیوندها
در فصل 4 کتاب Mastering Go، موارد استفاده از ساختارها و پیوندهای زبان Go، آموزش داده میشود. قبل از بحث در مورد تاپلها، انواع رشتهها، مفهوم برش بایت (Byte Slices)، مفهوم راستین نماد رشتهای (String Literals) در زبان Go بررسی و بحث خواهد شد. در ادامه فصل در مورد عبارات منظم، مطابقت الگو بحث خواهد شد. در ادامه فصل در مورد عبارات منظم و تطبیق الگو و همچنین در مورد عملگر Switch، بستههای Strings, math/big آموزش داده خواهد شد. برای استفاده از بسته math/big در مورد ذخیره ارزش کلیدی در این زبان نکاتی گفته خواهد شد. در پایان این فصل نیز در مورد کاربا فایلهای XML و JSON مطالبی را خواهید آموخت.
فصل 5: چگونه کدهای زبان Go را با ساختار داده بهبود دهیم؟
فصل 5 دربارهی بهینهسازی کدها در زبان Go به کمک ساختار داده و پیادهسازی ساختار دادهی شخصی خودمان خواهد بود. همچنین زبان Go در زمینه ساختار داده دارای مشکل خاصی نخواهد بود. این فصل شامل، توسعه درختان دودویی، لیست پیوند داده، جداول هش، پشتهها، صفها به کمک زبان برنامهنویسی Go خواهد بود. این فصل در مورد مزایای بسته Container در زبان Go و پیادهسازی دو برنامه Sudoku و استخراج اعداد تصادفی آموزش داده خواهد شد.
فصل 6: آنچه که در مورد بستهها و توابع زبان Go باید بدانید
فصل 6، درباره بستهها و توابع مهم در زبان Go خواهد بود. به طور مثال، استفاده از تابع init()، بسته استاندارد syscall در زبان Go، بستههای text/template و html/template در این زبان برنامهنویسی شرح و توضیح داده خواهد شد. علاوه بر این بستههای پیشرفته go/scanner و go/parser و go/token نیز بررسی و پیادهسازی خواهند شد. این فصل به شما کمک شایانی را در برنامهنویسی پیشرفته در زبان برنامهنویسی Go خواهد کرد.
فصل 7: قابلیت Reflection و Interface برای همیشه
در فصل 7 کتاب Mastering Go، در مورد سه مفهوم، Reflection, Interface و type مطالبی را خواهید آموخت. علاوه بر آن در مورد قابلیت شیگرایی در زبان Go و آزمایش و اشکالزدایی برنامهها به وسیله قابلیت Delve در زبان Go آموزش و بررسی داده خواهد شد.
فصل 8: سیستم یونیکس چه کاری انجام میدهد؟
فصل 8 کتاب Mastering Go، به شما درباره سیستمهای یونیکس توضیحاتی میدهد. در این فصل شما با برنامهنویسی سیستمی در زبان Go آشنا خواهید شد که شامل موضوعاتی از جمله، بسته flag برای کار با متغیرهای خط فرمان، کنترل سیگنالهای تحت یونیکس، ورودی و خروجی پروندهها خواهد بود. همچنین بستههای bytes, io.reader, io.writer و در آخر Viper و Cobra از جمله مباحثی خواهد بود که در این فصل به آن پرداخته خواهد شد. اگر شما علاقهمند به برنامهنویسی سیستمی هستید و یا حرفه شما این کار است میتوانید از کتاب Go System Programming از انتشارات Packt استفاده کنید.
فصل 9: همزمانی در Go – متد Goroutines، کانالها و خطوط لوله
فصل 9 کتاب Mastering Go، درباره همزمانی در زبان Go صحبت میکند. در این فصل، بسته Goroutines برای اجرای همزمان برنامهها و مدیریت آنها آموزش داده میشود. همچنین درباره کاربرد کانالها و خطوط لوله در زبان Go برای مدیریت همزمانی بررسی و تحلیل میشود. علاوه بر آن در این فصل، درباره تفاوت، پردازشها، نخها، بسته Goroutines، بسته sync و عملگرهای برنامهریزی شده مطالبی گفته خواهد شد.
فصل 10: همزمانی در زبان Go – موضوعات پیشرفته
فصل 10، در ادامه فصل قبل مبحث همزمانی خواهد پرداخت با تفاوت اینکه مباحث پیشرفتهتری گفته خواهد شد. در این فصل درباره زمانبندی در زبان برنامهنویسی Go، کاربرد کلمه select و انواع کانالهای زبان Go مانند، حافظه اشتراکی، متد Mutex و انواع آن مثل، sync.mutex و sync.RWmutex مطالبی را خواهید آموخت. در آخر فصل درباره بسته context، استخرهای کاری و تشخیص شرایط مسابقه صحبت خواهد شد.
فصل 11: آزمایش کد، بهینهسازی و ایجاد نمایه
فصل 11 کتاب Mastering Go، درباره آزمایش و بررسی کدها، بهینهسازی و ایجاد پروفایل، آموزش داده خواهد شد. در این فصل در مورد ایجاد سند برای کدهای نوشته شده، نوشتن کدهایی قابل استفاده در سکوهای مختلف (cross-compilation) یا به عبارتی نوشتن کد برای یک سیستم رایانهای در سیستم میزبان، محک زدن کدها، مثالهایی از ایجاد توابع و جست و جوی کدهای بیهوده در زبان برنامهنویسی Go مطالبی گفته خواهد شد.
فصل 12: اساس برنامهنویسی شبکه در Go
در فصل 12 کتاب Mastering Go، مبانی برنامهنویسی شبکه در زبان Go آموزش داده خواهد شد. بررسی بسته net/http و ایجاد یک سرویسدهنده وب و وب سرور در این فصل مرور میشود. همچنین این فصل در مورد استفاده از http.response ، http.request، ساختار http.Transport و انواع http.NewServeMux مطالبی گفته خواهد شد. علاوه بر آن شما خواهید آموخت که چگونه یک وبسایت را در زبان Go گسترش دهید. همچنین، در این فصل مطالبی را در مورد پیکربندی شبکه و رابط آن و جستجوی DNS در زبان Go گفته خواهد شد. در پایان این فصل نیز در مورد gRPC با استفاده از زبان Go و پیادهسازی آن بحث و بررسی خواهد شد.
فصل 13: برنامهنویسی شبکه – ساخت سرویسدهنده و سرویسگیرنده
در فصل 13 کتاب Mastering Go به شما در مورد کار با ترافیک HTTPS و ایجاد سرویسدهندههای UDP و TCP و کلاینتها در زبان Go با استفاده از بسته net مطالبی را خواهد آموخت. موضوعات دیگر در این فصل در مورد کلاینتهای RPC و سرویسدهندههای آن و همچنین ایجاد یک سرور همزمان TCP و خواندن اطلاعات خام در زبان Go خواهد بود.
فصل 14: یادگیری ماشین در Go
فصل 14 کتاب Mastering Go، در مورد یادگیری ماشین در زبان Go صحبت میکند. این فصل شامل موصوعات، طبقهبندی، خوشهیندی، تشخیص ناهنجاری، دور ریزها، شبکه عصبی و TensorFlow میباشد. همچنین در این فصل در مورد ارتباط Apache Kafka و زبان Go نیز بحث و بررسی خواهد شد.
برای کسب اطلاعات بیشتر از TensorFlow و کار با Deep Learning میتوانید از کتاب Deep Learning Pipeline استفاده کنید.
همچنین برای آموزش کامل و جامع Apache Kafka میتوانید از کتاب Kafka The Definitive Guide استفاده کنید.
سرفصلهای کتاب Mastering Go:
- Go and the Operating System
- Understanding Go Internals
- Working with Basic Go Data Types
- The Uses of Composite Types
- How to Enhance Go Code with Data Structures
- What You Might Not Know About Go Packages and Functions
- Reflection and Interfaces for All Seasons
- Telling a UNIX System What to Do
- Concurrency in Go – Goroutines, Channels, and Pipelines
- Concurrency in Go – Advanced Topics
- Code Testing, Optimization, and Profiling
- The Foundations of Network Programming in Go
- Network Programming – Building Your Own Servers and Clients
- Machine Learning in Go
فایل کتاب Mastering Go را میتوانید پس از پرداخت دانلود کنید.