Books: 13

Go

CoverTitleYear
Summary Go in Practice guides you through 70 real-world techniques in key areas like package management, microservice communication, and more. Following a cookbook-style Problem/Solution/Discussion format, this practical handbook builds on the foundational concepts of the Go language and introduces more » specific strategies you can use in your day-to-day applications. About the Technology Go may be the perfect systems language. Built with simplicity, concurrency, and modern applications in mind, Go provides the core tool set for rapidly building web, cloud, and systems applications. If you know a language like Java or C#, it's easy to get started with Go; the trick is finding the practical dirt-under-the-fingernails techniques that you need to build production-ready code. About the Book Go in Practice guides you through dozens of real-world techniques in key areas. Following a cookbook-style Problem/Solution/Discussion format, this practical handbook builds on the foundational concepts of the Go language and introduces specific strategies you can use in your day-to-day applications. You'll learn techniques for building web services, using Go in the cloud, testing and debugging, routing, network applications, and much more. After finishing this book, you will be ready to build sophisticated cloud-native Go applications. What's Inside * Dozens of specific, practical Golang techniques * Using Go for devops and cloudops * Writing RESTful web services and microservices * Practical web dev techniques About the Reader Written for experienced developers who have already started exploring Go and want to use it effectively in a production setting. About the Authors Matt Farina is a software architect at Deis. Matt Butcher is a Principal Engineer in the Advanced Technology Group at Hewlett Packard Enterprise. They are both authors, speakers, and regular open source contributors. Table of Contents 1. PART 1 - BACKGROUND AND FUNDAMENTALS 2. Getting into Go 3. A solid foundation 4. Concurrency in Go 5. PART 2 - WELL-ROUNDED APPLICATIONS 6. Handling errors and panic 7. Debugging and testing 8. PART 3 - AN INTERFACE FOR YOUR APPLICATIONS 9. HTML and email template patterns 10. Serving and receiving assets and forms 11. Working with web services 12. PART 4 - TAKING YOUR APPLICATIONS TO THE CLOUD 13. Using the cloud 14. Communication between cloud services 15. Reflection and code generation « less
2016
Build real-world, production-ready solutions in Go using cutting-edge technology and techniques
ABOUT 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 * more » Write interesting and clever but simple code, and learn skills and techniques that are directly transferrable to your own projects WHO THIS BOOK IS FOR If 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 Engine IN DETAIL Go 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 APPROACH This 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. « less
2016
A Problem-Solution Approach
Solve your Go problems using a problem-solution approach. Each recipe is a self-contained answer to a practical programming problem in Go. Go Recipes contains recipes that deal with the fundamentals of Go, allowing you to build simple, reliable, and efficient software. Other topics include working with more » data using modern NoSQL databases such as MongoDB and RethinkDB. The book provides in-depth guidance for building highly scalable backend APIs in Go for your mobile client applications and web client applications. All this means that you’ll be able to write programs that get the most out of multicore and networked machines, using Go’s novel type system that enables flexible and modular program construction. You'll see how to test your Go applications so they are ready for deployment, as well as learning how to write HTTP servers to offer you maximum flexibility when dealing with remote clients. What You'll LearnWork with the core fundamentals of GoPersist data into NoSQL databasesBuild scalable backend APIsTest your Go applicationsCreate HTTP web servers in Go Who This Book Is For Experienced programmers who have some or no prior experience with Go. « less
2016
Summary Go Web Programming teaches you how to build scalable, high-performance web applications in Go using modern design principles. About the Technology The Go language handles the demands of scalable, high-performance web applications by providing clean and fast compiled code, garbage collection, more » a simple concurrency model, and a fantastic standard library. It's perfect for writing microservices or building scalable, maintainable systems. About the Book Go Web Programming teaches you how to build web applications in Go using modern design principles. You'll learn how to implement the dependency injection design pattern for writing test doubles, use concurrency in web applications, and create and consume JSON and XML in web services. Along the way, you'll discover how to minimize your dependence on external frameworks, and you'll pick up valuable productivity techniques for testing and deploying your applications. What's Inside * Basics * Testing and benchmarking * Using concurrency * Deploying to standalone servers, PaaS, and Docker * Dozens of tips, tricks, and techniques About the Reader This book assumes you're familiar with Go language basics and the general concepts of web development. About the Author Sau Sheong Chang is Managing Director of Digital Technology at Singapore Power and an active contributor to the Ruby and Go communities. Table of Contents 1. PART 1 GO AND WEB APPLICATIONS 2. Go and web applications 3. Go ChitChat 4. PART 2 BASIC WEB APPLICATIONS 5. Handling requests 6. Processing requests 7. Displaying content 8. Storing data 9. PART 3 BEING REAL 10. Go web services 11. Testing your application 12. Leveraging Go concurrency 13. Deploying Go « less
2016
Build real-world, production-ready solutions by harnessing the powerful features of Go
***** About This Book ***** * An easy-to-follow guide that provides everything a developer needs to know to build end-to-end web applications in Go * Write interesting and clever, but simple code, and learn skills and techniques that are directly transferable to your own projects * A practical approach more » to utilize application scaffolding to design highly scalable programs that are deeply rooted in go routines and channels ***** Who This Book Is For ***** This book is intended for developers who are new to Go, but have previous experience of building web applications and APIs. ***** What You Will Learn ***** * Build a fully featured REST API to enable client-side single page apps * Utilize TLS to build reliable and secure sites * Learn to apply the nuances of the Go language to implement a wide range of start-up quality projects * 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 * Explore the core syntaxes and language features that enable concurrency in Go * Understand when and where to use concurrency to keep data consistent and applications non-blocking, responsive, and reliable * Utilize advanced concurrency patterns and best practices to stay low-level without compromising the simplicity of Go itself ***** In Detail ***** Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. It is a statically typed language with syntax loosely derived from that of C, adding garbage collection, type safety, some dynamic-typing capabilities, additional built-in types such as variable-length arrays and key-value maps, and a large standard library. This course starts with a walkthrough of the topics most critical to anyone building a new web application. Whether it's keeping your application secure, connecting to your database, enabling token-based authentication, or utilizing logic-less templates, this course has you covered. Scale, performance, and high availability lie at the heart of the projects, and the lessons learned throughout this course will arm you with everything you need to build world-class solutions. It will also take you through the history of concurrency, how Go utilizes it, how Go differs from other languages, and the features and structures of Go's concurrency core. It will make you feel comfortable designing a safe, data-consistent, and high-performance concurrent application in Go. This course is an invaluable resource to help you understand Go's powerful features to build simple, reliable, secure, and efficient web applications. ***** Style and approach ***** This course is a step-by-step guide, which starts off with the basics of go programming to build web applications and will gradually move on to cover intermediate and advanced topics. You will be going through this smooth transition by building interesting projects along with the authors, discussing significant options, and decisions at each stage, while keeping the programs lean, uncluttered, and as simple as possible. « less
2016
Build Reliable, Scalable Programs
Perfect for beginners familiar with programming basics, this hands-on guide provides an easy introduction to Go, the general-purpose programming language from Google. Author Caleb Doxsey covers the language’s core features with step-by-step instructions and exercises in each chapter to help you practice more » what you learn. Go is a general-purpose programming language with a clean syntax and advanced features, including concurrency. This book provides the one-on-one support you need to get started with the language, with short, easily digestible chapters that build on one another. By the time you finish this book, not only will you be able to write real Go programs, you'll be ready to tackle advanced techniques. * Jump into Go basics, including data types, variables, and control structures * Learn complex types, such as slices, functions, structs, and interfaces * Explore Go’s core library and learn how to create your own package * Write tests for your code by using the language’s go test program * Learn how to run programs concurrently with goroutines and channels * Get suggestions to help you master the craft of programming « less
2016
KEY FEATURES * Insightful coverage of Go programming syntax, constructs, and idioms to help you understand Go code effectively * Push your Go skills, with topics such as, data types, channels, concurrency, object-oriented Go, testing, and network programming * Each chapter provides working code samples more » that are designed to help reader quickly understand respective topic BOOK DESCRIPTION The Go programming language has firmly established itself as a favorite for building complex and scalable system applications. Go offers a direct and practical approach to programming that let programmers write correct and predictable code using concurrency idioms and a full-featured standard library. This is a step-by-step, practical guide full of real world examples to help you get started with Go in no time at all. We start off by understanding the fundamentals of Go, followed by a detailed description of the Go data types, program structures and Maps. After this, you learn how to use Go concurrency idioms to avoid pitfalls and create programs that are exact in expected behavior. Next, you will be familiarized with the tools and libraries that are available in Go for writing and exercising tests, benchmarking, and code coverage. Finally, you will be able to utilize some of the most important features of GO such as, Network Programming and OS integration to build efficient applications. All the concepts are explained in a crisp and concise manner and by the end of this book; you would be able to create highly efficient programs that you can deploy over cloud. WHAT YOU WILL LEARN * Install and configure the Go development environment to quickly get started with your first program. * Use the basic elements of the language including source code structure, variables, constants, and control flow primitives to quickly get started with Go * Gain practical insight into the use of Go's type system including basic and composite types such as maps, slices, and structs. * Use interface types and techniques such as embedding to create idiomatic object-oriented programs in Go. * Develop effective functions that are encapsulated in well-organized package structures with support for error handling and panic recovery. * Implement goroutine, channels, and other concurrency primitives to write highly-concurrent and safe Go code * Write tested and benchmarked code using Go’s built test tools * Access OS resources by calling C libraries and interact with program environment at runtime ABOUT THE AUTHOR Vladimir Vivien (@vladimirvivien) is a software engineer living in the United States. He is a previously published author and has written code in languages such as Java, JavaScript, Python, C to name a few. Vladimir has work in diverse industries including technology, publishing, financial, and healthcare. After years of building enterprise systems using Java, Vladimir came to Go for its simplicity and stayed for its concurrency and fast build time. Vladimir continues to use Go as his primary language to build and create open source software (https://github.com/vladimirivivien). TABLE OF CONTENTS 1. A First Step in Go 2. Go Language Essentials 3. Go Control Flow 4. Data Types 5. Functions in Go 6. Go Packages and Programs 7. Composite Types 8. Methods, Interfaces, and Objects 9. Concurrency 10. Data IO in Go 11. Writing Networked Services 12. Code Testing « less
2016
Summary Go in Action introduces the Go language, guiding you from inquisitive developer to Go guru. The book begins by introducing the unique features and concepts of Go. Then, you'll get hands-on experience writing real-world applications including websites and network servers, as well as techniques more » to manipulate and convert data at speeds that will make your friends jealous. About the Technology Application development can be tricky enough even when you aren't dealing with complex systems programming problems like web-scale concurrency and real-time performance. While it's possible to solve these common issues with additional tools and frameworks, Go handles them right out of the box, making for a more natural and productive coding experience. Developed at Google, Go powers nimble startups as well as big enterprises—companies that rely on high-performing services in their infrastructure. About the Book Go in Action is for any intermediate-level developer who has experience with other programming languages and wants a jump-start in learning Go or a more thorough understanding of the language and its internals. This book provides an intensive, comprehensive, and idiomatic view of Go. It focuses on the specification and implementation of the language, including topics like language syntax, Go's type system, concurrency, channels, and testing. What's Inside * Language specification and implementation * Go's type system * Internals of Go's data structures * Testing and benchmarking About the Reader This book assumes you're a working developer proficient with another language like Java, Ruby, Python, C#, or C++. About the Authors William Kennedy is a seasoned software developer and author of the blog GoingGo.Net. Brian Ketelsen and Erik St. Martin are the organizers of GopherCon and coauthors of the Go-based Skynet framework. Table of Contents 1. Introducing Go 2. Go quick-start 3. Packaging and tooling 4. Arrays, slices, and maps 5. Go's type system 6. Concurrency 7. Concurrency patterns 8. Standard library 9. Testing and benchmarking « less
2015
Build real-world, production-ready solutions in Go using cutting-edge technology and techniques
Dive headfirst into solving actual enterprise problems and start cutting code from the word go. You will build complete applications around a variety of subjects using a range of different technologies and techniques, all of which are directly applicable to today's tech start-up world. Scale, performance, more » and high availability lie at the heart of the projects, and the lessons learned throughout this book will arm you with everything you need to build world-class solutions. Well-designed applications and sensible architectures can scale horizontally to cope with the demands of up to millions of users, while avoiding the prohibitive up-front investment that can bring a project to its knees. ***** Who This Book Is For ***** Intended for seasoned Go programmers who want to put their expertise in Go to use to solve big, real-world, modern problems. With a basic understanding of channels and goroutines, you will hone your skills to build tools and programs that are quick and simple. You need not be an expert in distributed systems or technologies in order to deliver solutions capable of great scale. It is assumed that you are familiar with the basic concepts of Go. « less
2015
The Go Programming Language is the authoritative resource for any programmer who wants to learn Go. It shows how to write clear and idiomatic Go to solve real-world problems. The book does not assume prior knowledge of Go nor experience with any specific language, so you’ll find it accessible whether more » you’re most comfortable with JavaScript, Ruby, Python, Java, or C++. * The first chapter is a tutorial on the basic concepts of Go, introduced through programs for file I/O and text processing, simple graphics, and web clients and servers. * Early chapters cover the structural elements of Go programs: syntax, control flow, data types, and the organization of a program into packages, files, and functions. The examples illustrate many packages from the standard library and show how to create new ones of your own. Later chapters explain the package mechanism in more detail, and how to build, test, and maintain projects using the go tool. * The chapters on methods and interfaces introduce Go’s unconventional approach to object-oriented programming, in which methods can be declared on any type and interfaces are implicitly satisfied. They explain the key principles of encapsulation, composition, and substitutability using realistic examples. * Two chapters on concurrency present in-depth approaches to this increasingly important topic. The first, which covers the basic mechanisms of goroutines and channels, illustrates the style known as communicating sequential processes for which Go is renowned. The second covers more traditional aspects of concurrency with shared variables. These chapters provide a solid foundation for programmers encountering concurrency for the first time. * The final two chapters explore lower-level features of Go. One covers the art of metaprogramming using reflection. The other shows how to use the unsafe package to step outside the type system for special situations, and how to use the cgo tool to create Go bindings for C libraries. The book features hundreds of interesting and practical examples of well-written Go code that cover the whole language, its most important packages, and a wide range of applications. Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download from http://gopl.io/ and may be conveniently fetched, built, and installed using the go get command. « less
2015