معرفی کتاب «Everyday Go - The Fast Track for Golang» نوشتهٔ Alex Ellis، منتشرشده توسط نشر 2021-08-05 در سال 2021. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است. «Everyday Go - The Fast Track for Golang» در دستهٔ برنامهنویسی قرار دارد.
کتاب «اوردی گو» (Everyday Go - The Fast Track for Golang) نوشتهٔ الکس الیس، یک مسیر سریع و عملی برای تسلط بر ابزارها، تکنیکها و الگوهای زبان برنامهنویسی گو است که در پروژههای واقعی و محیط تولید به کار میروند. این کتاب با رویکردی مبتنی بر مثال و تمرکز بر چرخهٔ حیات نرمافزار، از مبانی اولیه تا آزموننویسی، توزیع و پایش را پوشش میدهد.
دربارهٔ کتاب «اوردی گو»
کتاب «اوردی گو» که در سال ۲۰۲۱ منتشر شده است، گردآوری از مثالهای عملی، درسها و تکنیکهای ارزشمند برای توسعهدهندگان گو محسوب میشود. این کتاب یک مرجع کامل یا راهنمای جامع زبان نیست، بلکه رویکردی سریع و هدفمند برای یادگیری ابزارها و الگوهای مورد استفاده در محیطهای تولیدی دارد. نویسنده که از سال ۲۰۱۵ دربارهٔ گو مینویسد، تمام نکات و تکنیکهایی را که بهطور مرتب به آنها نیاز داشته، در این کتاب گردآوری کرده است. از جمله مباحث کلیدی این کتاب میتوان به مدیریت بستهها و مسیرها، ماژولهای گو، کامپایل متقابل برای سیستمعاملهای مختلف، کار با اچتیتیپی و جیسان، استفاده از همروندی با گوروتینها و کانالها، نوشتن آزمونهای واحد، ساخت ابزارهای خط فرمان، و ایجاد ریزخدمات اشاره کرد. همچنین، فصلی به توسعه و آزمون توابع با استفاده از پروژهٔ متنباز «اوپنفااس» (OpenFaaS) و گو اختصاص دارد.
دربارهٔ نویسنده
الکس الیس، نویسندهٔ کتاب «اوردی گو»، بنیانگذار پروژهٔ متنباز و محبوب «اوپنفااس» (OpenFaaS) است. او از سال ۲۰۱۵ بهطور مستمر دربارهٔ زبان گو مینویسد و محتوای آموزشی تولید میکند. الیس بهعنوان یک توسعهدهندهٔ باتجربه و متخصص در زمینهٔ گو شناخته میشود که تجربهٔ عملی خود را در قالب کتابها و دورههای آموزشی متعدد به اشتراک گذاشته است. او یک دورهٔ آموزشی و کتاب الکترونیکی دیگر نیز با عنوان «سرورلس برای هر کس دیگری» (Serverless For Everyone Else) تألیف کرده است.
چرا باید «اوردی گو» را بخوانید؟
- یادگیری مبتنی بر مثالهای واقعی: کتاب با ارائهٔ مثالهای عملی و کدهای قابل اجرا از پروژههای واقعی، مفاهیم انتزاعی را به شکلی ملموس و کاربردی آموزش میدهد.
- پوشش چرخهٔ کامل تولید نرمافزار: از یادگیری مبانی و اصول اولیهٔ گو تا مراحل آزموننویسی، توزیع و پایش برنامه، تمام مراحل کلیدی در این کتاب پوشش داده شده است.
- افزایش بهرهوری و کیفیت کد: با یادگیری تکنیکهای آزموننویسی، ساخت ابزارهای داخلی کارآمد و استفاده از مانیتورینگ، میتوانید محصولاتی با کیفیت بالاتر و قابلیت اطمینان بیشتر تحویل دهید.
- مرجعی مفید برای توسعهدهندگان حرفهای: حتی اگر تجربهٔ کار با گو را دارید، این کتاب میتواند بهعنوان منبعی برای مرور سریع مباحثی مانند اکشنهای گیتهاب یا پرومتئوس مورد استفاده قرار گیرد.
- رویکردی سریع و بدون حاشیه: کتاب «اوردی گو» با هدف ارائهٔ سریعترین مسیر برای یادگیری ابزارها و الگوهای مورد نیاز در محیط تولید نوشته شده است و از پرداختن به جزئیات غیرضروری پرهیز میکند.
این کتاب برای چه کسانی مناسب است؟
این کتاب برای طیف گستردهای از توسعهدهندگان گو مفید است. چه تازهکار باشید و چه در سطح متوسط، میتوانید از مطالب آن بهره ببرید. همچنین، برای توسعهدهندگانی که به دنبال گسترش دانش خود در حوزههای خاصی مانند کامپایل متقابل، آزموننویسی، اکشنهای گیتهاب یا گوروتینها هستند، بسیار ارزشمند است. حتی توسعهدهندگان با تجربهتر نیز میتوانند از آن بهعنوان یک مرجع سریع و کاربردی برای مباحثی مانند پیکربندی پرومتئوس یا اکشنهای گیتهاب استفاده کنند.
سوالات متداول
آیا این کتاب برای برنامهنویسانی که هیچ پیشزمینهای در گو ندارند مناسب است؟
بله، کتاب با مباحث مقدماتی مانند شروع کار با گو، نصب و راهاندازی، و مفاهیم پایه مانند بستهها و ماژولها آغاز میشود. با این حال، یک بررسی در گودریدز اشاره کرده است که کتاب برای افراد کاملاً مبتدی که هیچ آشنایی با گو ندارند، ممکن است چالشبرانگیز باشد و بهتر است ابتدا با مفاهیم اصلی زبان آشنا شوند.
آیا این کتاب به مباحث همروندی (Concurrency) در گو میپردازد؟
بله، یکی از بخشهای کلیدی کتاب به آموزش استفاده از همروندی با گوروتینها، کانالها، موتکسها و گروههای خطا اختصاص دارد. این موضوع یکی از نقاط قوت زبان گو است و در کتاب بهخوبی پوشش داده شده است.
آیا مطالب کتاب با وجود انتشار در سال ۲۰۲۱، همچنان معتبر و بهروز هستند؟
با توجه به سادگی و ثبات بالای زبان گو که بهندرت با نسخههای جدید دچار تغییرات اساسی میشود، محتوای کتاب همچنان معتبر و کاربردی ارزیابی میشود.
Learn tools, techniques and patterns from real tools used in production.“Everyday Go” is the fast way to learn tools, techniques and patterns from real tools used in production.This book is a compilation of practical examples, lessons and techniques for Go developers. The topics cover the software lifecycle from learning the fundamentals, to software testing, to distribution and monitoring.If you feel like you may have seen some of these techniques before, you would be right. I’ve been writing about Go since 2015 and wanted to take everything that I’ve needed on a regular basis, and to lay it out for you to benefit from.It’s not a reference book or a complete guide to the language, but if you like learning by example and aren’t afraid to get your feet wet, then this style is probably for you.Features my top rated content on Writing unit-tests in Go, updated, extended and modernised for 2021, as featured in the Kubernetes documentation.Benefits to professional developers and businesses:• Craft internal tools that you’ll enjoy building and maintaining• Deliver higher quality product through unit testing• Increase reliability and uptime through monitoring and metrics• Learn how to integrate quickly with brownfield APIs and products• Cover your training objectives for this yearWho is this book for?Whether you’re starting out with Go, or are at an intermediate level, then you will probably get a lot out of this book. You may get this book to expand your knowledge, or to go deeper in a certain area like Cross-compilation, Unit Testing, GitHub Actions or Goroutines.It’s also useful as reference material for experienced Go developers, for instance – the author uses the GitHub Actions and Prometheus chapters as a refresher when creating new services. Introduction How to use the book Help the book to evolve Changelog Why Go? Getting started with Go A note for Windows users Direct installation on Linux Packages and paths Vendoring and Go modules Create your first Go program Add an external dependency Make use of flags Define a separate package or library Cross-compile for different operating systems Go build arguments CGO and portability Fetch JSON from a HTTP endpoint Get started Learn to parse JSON Retrieve the JSON via HTTP Extracting additional data from the JSON Five ways to write an awesome CLI Pick Go Parse flags & arguments Automate everything Integrate with package managers Accept contributions and gather feedback Now, Go and write your CLI Writing unit-tests in Golang Testing opinions Testing the Sum method Adding a test table Party tricks for ``go test'' Statement coverage Generating an HTML coverage report Benchmarking your code Go doesn't ship your tests Stress testing your tests Running tests in parallel Compile the tests to a binary Isolating dependencies Example of isolating dependencies Unit-testing a HTTP server Work concurrently work with Goroutines A simple example with Goroutines Avoid a common mistake with Goroutines Error groups Sharing data between Goroutines Using channels for synchronisation Using a context to handle timeouts Limiting concurrent work Store data with a database Write your own config files in YAML A practical example of YAML in action Read and write your own YAML schema Merging objects Inject version information into your binaries Capture useful variable(s) Prepare your code Do it with Docker Examples in production Embed data in your application Create dynamic content with templates Advanced templates: ranges and custom functions Real-world templates - arkade Write a HTTP server Reading the request Advanced route handling Writing HTTP middleware Add Prometheus metrics to your microservices Tracking HTTP metrics for our microservice Adding custom metrics to your Prometheus data Building and releasing Go binaries The release-it example Releasing your binaries with a GitHub Action Releasing a Docker container image Going multi-arch Shipping a Docker container from GitHub Actions Your onward journey Giving feedback Contributing to Open Source My other content "Everyday Go" is the fast way to learn tools, techniques and patterns from real tools used in production. This book is a compilation of practical examples, lessons and techniques for Go developers. The topics cover the software lifecycle from learning the fundamentals, to software testing, to distribution and monitoring. If you feel like you may have seen some of these techniques before, you would be right. I've been writing about Go since 2015 and wanted to take everything that I've needed on a regular basis, and to lay it out for you to benefit from. It's not a reference book or a complete guide to the language, but if you like learning by example and aren't afraid to get your feet wet, then this style is probably for you. Features my top rated content on Writing unit-tests in Go, updated, extended and modernised for 2021, as featured in the Kubernetes documentation.