3 options
Go Programming Blueprints : build real-world, production-ready solutions in Go using cutting-edge technology and techniques / Mat Ryer.
- Format:
- Book
- Author/Creator:
- Ryer, Mat, author.
- Series:
- Community experience distilled.
- Community Experience Distilled
- Language:
- English
- Subjects (All):
- Computer programs--Design.
- Computer programs.
- Physical Description:
- 1 online resource (274 p.)
- Edition:
- 1st edition
- Other Title:
- Build real-world, production-ready solutions in Go using cutting-edge technology and techniques
- Place of Publication:
- Birmingham, England : Packt Publishing, 2015.
- Language Note:
- English
- System Details:
- Mode of access: World Wide Web.
- text file
- Biography/History:
- Ryer Mat: Mat Ryer has been programming computers since he was 6 years old; he and his father would build games and programs, first in BASIC on a ZX Spectrum and then in AmigaBASIC and AMOS on Commodore Amiga. Many hours were spent on manually copying the code from Amiga Format magazine and tweaking variables or moving GOTO statements around to see what might happen. The same spirit of exploration and obsession with programming led Mat to start work with a local agency in Mansfield, England, when he was 18, where he started to build websites and services. In 2006, Mat left rural Nottinghamshire for London, where he took a job at BT. It was here that he worked with a talented group of developers and managers on honing his agile development skills and developing the light flavor that he still uses today. After being contracted around London for a few years, coding everything from C# and Objective-C to Ruby and JavaScript, Mat noticed a new systems language called Go that Google was pioneering. Since it addressed very pertinent and relevant modern technical challenges, Mat started using it to solve problems while the language was still in the beta stage and he has used it ever since. In 2012, Mat moved to Boulder, Colorado, where he worked on a variety of projects, from big data web services and highly available systems to small side projects and charitable endeavors. He returned home, to London, in 2015 after the company he was working in was sold. Mat, to this day, continues to use Go to build a variety of products, services, and open-source projects. He writes articles about Go on his blog at matryer. com and tweets about Go with the handle @matryer. Mat is a regular speaker at Go conferences around the world and encourages people to come up and introduce themselves if their paths ever cross.
- Summary:
- 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.
- Contents:
- Cover; Copyright; Credits; About the Author; Acknowledgments; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Chat Application with Web Sockets; A simple web server; Templates; Doing things once; Using your own handlers; Properly building and executing Go programs; Modeling a chat room and clients on the server; Modeling the client; Modeling a room; Concurrency programming using idiomatic Go; Turning a room into an HTTP handler; Use helper functions to remove complexity; Creating and using rooms; Building an HTML and JavaScript chat client
- Getting more out of templatesTracing code to get a look under the hood; Writing a package using TDD; Interfaces; Unit tests; Red-green testing; Implementing the interface; Unexported types being returned to users; Using our new trace package; Making tracing optional; Clean package APIs; Summary; Chapter 2: Adding Authentication; Handlers all the way down; Making a pretty social sign-in page; Endpoints with dynamic paths; OAuth2; Open source OAuth2 packages; Tell the authentication providers about your app; Implementing external logging in; Logging in; Handling the response from the provider
- Presenting the user dataAugmenting messages with additional data; Summary; Chapter 3: Three Ways to Implement Profile Pictures; Avatars from the authentication server; Getting the avatar URL; Transmitting the avatar URL; Adding the avatar to the user interface; Logging out; Making things prettier; Implementing Gravatar; Abstracting the avatar URL process; The authentication service and the avatar's implementation; Using an implementation; Gravatar implementation; Uploading an avatar picture; User identification; An upload form; Handling the upload; Serving the images
- The Avatar implementation for local filesSupporting different file types; Refactoring and optimizing our code; Replacing concrete types with interfaces; Changing interfaces in a test-driven way; Fixing existing implementations; Global variables versus fields; Implementing our new design; Tidying up and testing; Combining all three implementations; Summary; Chapter 4: Command-line Tools to Find Domain Names; Pipe design for command-line tools; Five simple programs; Sprinkle; Exercise - configurable transformations; Domainify; Exercise - making top-level domains configurable; Coolify; Synonyms
- Using environment variables for configurationConsuming a web API; Getting domain suggestions; Available; Composing all five programs; One program to rule them all; Summary; Chapter 5: Building Distributed Systems and Working with Flexible Data; System design; Database design; Installing the environment; NSQ; NSQ driver for Go; MongoDB; MongoDB driver for Go; Start the environment; Votes from Twitter; Authorization with Twitter; Extracting the connection; Reading environment variables; Reading from MongoDB; Reading from Twitter; Signal channels; Publishing to NSQ
- Gracefully starting and stopping
- Notes:
- Includes index.
- Includes bibliographical references and index.
- Description based on online resource; title from PDF title page (ebrary, viewed February 5, 2015).
- ISBN:
- 9781783988037
- 1783988037
- OCLC:
- 904442161
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.