The Go Workshop D'Anna, Delio; Hayes, Andrew; Hennessy, Sam ...
2019
eBook
The Go Workshop takes you from being a novice Go programmer to a confident developer who can leverage the key features of the language to build real-world applications. This book helps you cut ...through excessive theory and delve into the practical features and techniques that are commonly applied to design performant, scalable applications.
Mastering Go, Second Edition shows how to put Go to work on real production systems. For programmers who already know the Go language basics, this book provides examples, patterns, and clear ...explanations to help you deeply understand Go's capabilities and apply them in your programming work.
This book distills the industry's best practices for writing lean Go code that is easy to test and maintain and explores their practical application on Links 'R' US: an example project that crawls ...web-pages and applies the PageRank algorithm to assign an importance score to each one.
Function literals, Monads, Lazy evaluation, Currying, and moreAbout This BookWrite concise and maintainable code with streams and high-order functionsUnderstand the benefits of currying your Golang ...functionsLearn the most effective design patterns for functional programming and learn when to apply each of themBuild distributed MapReduce solutions using GoWho This Book Is ForThis book is for Golang developers comfortable with OOP and interested in learning how to apply the functional paradigm to create robust and testable apps. Prior programming experience with Go would be helpful, but not mandatory.What You Will LearnLearn how to compose reliable applications using high-order functionsExplore techniques to eliminate side-effects using FP techniques such as curryingUse first-class functions to implement pure functionsUnderstand how to implement a lambda expression in GoCompose a working application using the decorator patternCreate faster programs using lazy evaluationUse Go concurrency constructs to compose a functionality pipelineUnderstand category theory and what it has to do with FPIn DetailFunctional programming is a popular programming paradigm that is used to simplify many tasks and will help you write flexible and succinct code. It allows you to decompose your programs into smaller, highly reusable components, without applying conceptual restraints on how the software should be modularized.This book bridges the language gap for Golang developers by showing you how to create and consume functional constructs in Golang.The book is divided into four modules. The first module explains the functional style of programming; pure functional programming (FP), manipulating collections, and using high-order functions. In the second module, you will learn design patterns that you can use to build FP-style applications. In the next module, you will learn FP techniques that you can use to improve your API signatures, to increase performance, and to build better Cloud-native applications. The last module delves into the underpinnings of FP with an introduction to category theory for software developers to give you a real understanding of what pure functional programming is all about, along with applicable code examples.By the end of the book, you will be adept at building applications the functional way.Style and approachThis book takes a pragmatic approach and shows you techniques to write better functional constructs in Golang. We’ll also show you how use these concepts to build robust and testable apps.
Hands-On Restful Web Services with Go will help you in understanding the fundamentals of REST and enable you to quickly develop graceful API with the help of Golang's open-source tools and libraries. ...It can be a developer guide in general that covers all key aspects of API development and standard architecture patterns in application development.
Building software requires careful planning and architectural considerations; Golang was developed with a fresh perspective on building next-generation applications on the cloud with distributed and ...concurrent computing concerns. This book is your guide to software architecture with Golang.
The Go ecosystem comprises some really powerful Deep Learning tools. This book shows you how to use these tools to train and deploy scalable Deep Learning models. You will explore a number of modern ...Neural Network architectures such as CNNs, RNNs, and more. By the end, you will be able to train your own Deep Learning models from scratch, using.
Proven methodologies and concurrency techniques that will help you write faster and better code with Go programming Key Features * Explore Go's profiling tools to write faster programs by identifying ...and fixing bottlenecks * Address Go-specific performance issues such as memory allocation and garbage collection * Delve into the subtleties of concurrency and discover how to successfully implement it in everyday applications Book Description Go is an easy-to-write language that is popular among developers thanks to its features such as concurrency, portability, and ability to reduce complexity. This Golang book will teach you how to construct idiomatic Go code that is reusable and highly performant. Starting with an introduction to performance concepts, you'll understand the ideology behind Go's performance. You'll then learn how to effectively implement Go data structures and algorithms along with exploring data manipulation and organization to write programs for scalable software. This book covers channels and goroutines for parallelism and concurrency to write high-performance code for distributed systems. As you advance, you'll learn how to manage memory effectively. You'll explore the compute unified device architecture (CUDA) application programming interface (API), use containers to build Go code, and work with the Go build cache for quicker compilation. You'll also get to grips with profiling and tracing Go code for detecting bottlenecks in your system. Finally, you'll evaluate clusters and job queues for performance optimization and monitor the application for performance regression. By the end of this Go programming book, you'll be able to improve existing code and fulfill customer requirements by writing efficient programs. What you will learn * Organize and manipulate data effectively with clusters and job queues * Explore commonly applied Go data structures and algorithms * Write anonymous functions in Go to build reusable apps * Profile and trace Go apps to reduce bottlenecks and improve efficiency * Deploy, monitor, and iterate Go programs with a focus on performance * Dive into memory management and CPU and GPU parallelism in Go Who this book is for This Golang book is a must for developers and professionals who have an intermediate-to-advanced understanding of Go programming, and are interested in improving their speed of code execution.
Build real-world, production-ready solutions in Go using cutting-edge technology and techniquesAbout This Book• Get up to date with Go and write code capable of delivering massive world-class scale ...performance and availability• Learn to apply the nuances of the Go language, and get to know the open source community that surrounds it to implement a wide range of start-up quality projects• Write interesting and clever but simple code, and learn skills and techniques that are directly transferrable to your own projectsWho This Book Is ForIf you are familiar with Go and are want to put your knowledge to work, then this is the book for you. Go programming knowledge is a must. What You Will Learn• Build quirky and fun projects from scratch while exploring patterns, practices, and techniques, as well as a range of different technologies• Create websites and data services capable of massive scale using Go's net/http package, exploring RESTful patterns as well as low-latency WebSocket APIs• Interact with a variety of remote web services to consume capabilities ranging from authentication and authorization to a fully functioning thesaurus• Develop high-quality command-line tools that utilize the powerful shell capabilities and perform well using Go's in-built concurrency mechanisms• Build microservices for larger organizations using the Go Kit library• Implement a modern document database as well as high- throughput messaging queue technology to put together an architecture that is truly ready to scale• Write concurrent programs and gracefully manage the execution of them and communication by smartly using channels• Get a feel for app deployment using Docker and Google App EngineIn DetailGo is the language of the Internet age, and the latest version of Go comes with major architectural changes. Implementation of the language, runtime, and libraries has changed significantly. The compiler and runtime are now written entirely in Go. The garbage collector is now concurrent and provides dramatically lower pause times by running in parallel with other Go routines when possible.This book will show you how to leverage all the latest features and much more. This book shows you how to build powerful systems and drops you into real-world situations. You will learn to develop high-quality command-line tools that utilize the powerful shell capabilities and perform well using Go's in-built concurrency mechanisms. Scale, performance, and high availability lie at the heart of our projects, and the lessons learned throughout this book will arm you with everything you need to build world-class solutions. You will get a feel for app deployment using Docker and Google App Engine. Each project could form the basis of a start-up, which means they are directly applicable to modern software markets.Style and approachThis book provides fun projects that involve building applications from scratch. These projects will teach you to build chat applications, a distributed system, and a recommendation system.