Go cookbook build modular, readable, and testable applications in Go
Bridge the gap between basic understanding of Go and use of its advanced features About This Book Discover a number of recipes and approaches to develop modern back-end applications Put to use the best practices to combine the recipes for sophisticated parallel tools This book is based on Go 1.8, wh...
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham, [England] :
Packt Publishing
2017.
|
Edición: | 1st edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630133106719 |
Tabla de Contenidos:
- Cover
- Copyright
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: I/O and File Systems
- Introduction
- Using the common I/O interfaces
- Getting ready
- How to do it...
- How it works...
- Using the bytes and strings packages
- Getting ready
- How to do it...
- How it works...
- Working with directories and files
- Getting ready
- How to do it...
- How it works...
- Working with the CSV format
- Getting ready
- How to do it...
- How it works...
- Working with temporary files
- Getting ready
- How to do it...
- How it works...
- Working with text/template and HTML/templates
- Getting ready
- How to do it...
- How it works...
- Chapter 2: Command-Line Tools
- Introduction
- Using command-line flags
- Getting ready
- How to do it...
- How it works...
- Using command-line arguments
- Getting ready
- How to do it...
- How it works...
- Reading and setting environment variables
- Getting ready
- How to do it...
- How it works...
- Configuration using TOML, YAML, and JSON
- Getting ready
- How to do it...
- How it works...
- Working with Unix pipes
- Getting ready
- How to do it...
- How it works...
- Catching and handling signals
- Getting ready
- How to do it...
- How it works...
- An ANSI coloring application
- Getting ready
- How to do it...
- How it works...
- Chapter 3: Data Conversion and Composition
- Introduction
- Converting data types and interface casting
- Getting ready
- How to do it...
- How it works...
- Working with numeric data types using math and math/big
- Getting ready
- How to do it...
- How it works...
- Currency conversions and float64 considerations
- Getting ready
- How to do it...
- How it works...
- Using pointers and SQL NullTypes for encoding and decoding.
- Getting ready
- How to do it...
- How it works...
- Encoding and decoding Go data
- Getting ready
- How to do it...
- How it works...
- Struct tags and basic reflection in Go
- Getting ready
- How to do it...
- How it works...
- Implementing collections via closures
- Getting ready
- How to do it...
- How it works...
- Chapter 4: Error Handling in Go
- Introduction
- Handling errors and the Error interface
- Getting ready
- How to do it...
- How it works...
- Using the pkg/errors package and wrapping errors
- Getting ready
- How to do it...
- How it works...
- Using the log package and understanding when to log errors
- Getting ready
- How to do it...
- How it works...
- Structured logging with the apex and logrus packages
- Getting ready
- How to do it...
- How it works...
- Logging with the context package
- Getting ready
- How to do it...
- How it works...
- Using package-level global variables
- Getting ready
- How to do it...
- How it works...
- Catching panics for long running processes
- Getting ready
- How to do it...
- How it works...
- Chapter 5: All about Databases and Storage
- Introduction
- The database/sql package with MySQL
- Getting ready
- How to do it...
- How it works...
- Executing a database transaction interface
- Getting ready
- How to do it...
- How it works...
- Connection pooling, rate limiting, and timeouts for SQL
- Getting ready
- How to do it...
- How it works...
- Working with Redis
- Getting ready
- How to do it...
- How it works...
- Using NoSQL with MongoDB and mgo
- Getting ready
- How to do it...
- How it works...
- Creating storage interfaces for data portability
- Getting ready
- How to do it...
- How it works...
- Chapter 6: Web Clients and APIs
- Introduction
- Initializing, storing, and passing http.Client structs
- Getting ready.
- How to do it...
- How it works...
- Writing a client for a REST API
- Getting ready
- How to do it...
- How it works...
- Executing parallel and async client requests
- Getting ready
- How to do it...
- How it works...
- Making use of OAuth2 clients
- Getting ready
- How to do it...
- How it works...
- Implementing an OAuth2 token storage interface
- Getting ready
- How to do it...
- How it works...
- Wrapping a client in added functionality and function composition
- Getting ready
- How to do it...
- How it works...
- Understanding GRPC clients
- Getting ready
- How to do it...
- How it works...
- Chapter 7: Microservices for Applications in Go
- Introduction
- Working with web handlers, requests, and ResponseWriters
- Getting ready
- How to do it...
- How it works...
- Using structs and closures for stateful handlers
- Getting ready
- How to do it...
- How it works...
- Validating input for Go structs and user inputs
- Getting ready
- How to do it...
- How it works...
- Rendering and content negotiation
- Getting ready
- How to do it...
- How it works...
- Implementing and using middleware
- Getting ready
- How to do it...
- How it works...
- Building a reverse proxy application
- Getting ready
- How to do it...
- How it works...
- Exporting GRPC as a JSON API
- Getting ready
- How to do it...
- How it works...
- Chapter 8: Testing
- Introduction
- Mocking using the standard library
- Getting ready
- How to do it...
- How it works...
- Using the Mockgen package
- Getting ready
- How to do it...
- How it works...
- Using table-driven tests to improve coverage
- Getting ready
- How to do it...
- How it works...
- Using third-party testing tools
- Getting ready
- How to do it...
- How it works...
- Practical fuzzing
- Getting ready
- How to do it...
- How it works.
- Behavior testing using Go
- Getting ready
- How to do it...
- How it works...
- Chapter 9: Parallelism and Concurrency
- Introduction
- Using channels and the select statement
- Getting ready
- How to do it...
- How it works...
- Performing async operations with sync.WaitGroup
- Getting ready
- How to do it...
- How it works...
- Using atomic operations and mutex
- Getting ready
- How to do it...
- How it works...
- Using the context package
- Getting ready
- How to do it...
- How it works...
- Executing state management for channels
- Getting ready
- How to do it...
- How it works...
- Using the worker pool design pattern
- Getting ready
- How to do it...
- How it works...
- Using workers to create pipelines
- Getting ready
- How to do it...
- How it works...
- Chapter 10: Distributed Systems
- Introduction
- Using service discovery with Consul
- Getting ready
- How to do it...
- How it works...
- Implementing basic consensus using Raft
- Getting ready
- How to do it...
- How it works...
- Using containerization with Docker
- Getting ready
- How to do it...
- How it works...
- Orchestration and deployment strategies
- Getting ready
- How to do it...
- How it works...
- Monitoring applications
- Getting ready
- How to do it...
- How it works...
- Collecting metrics
- Getting ready
- How to do it...
- How it works...
- Chapter 11: Reactive Programming and Data Streams
- Introduction
- Goflow for dataflow programming
- Getting ready
- How to do it...
- How it works...
- Reactive programming with RxGo
- Getting ready
- How to do it...
- How it works...
- Using Kafka with Sarama
- Getting ready
- How to do it...
- How it works...
- Using async producers with Kafka
- Getting ready
- How to do it...
- How it works...
- Connecting Kafka to Goflow
- Getting ready.
- How to do it...
- How it works...
- Writing a GraphQL server in Go
- Getting ready
- How to do it...
- How it works...
- Chapter 12: Serverless Programming
- Introduction
- Go programming on Lambda with Apex
- Getting ready
- How to do it...
- How it works...
- Apex serverless logging and metrics
- Getting ready
- How to do it...
- How it works...
- Google App Engine with Go
- Getting ready
- How to do it...
- How it works...
- Working with Firebase using zabawaba99/firego
- Getting ready
- How to do it...
- How it works...
- Chapter 13: Performance Improvements, Tips, and Tricks
- Introduction
- Speeding up compilation and testing cycles
- Getting ready
- How to do it...
- How it works...
- Using the pprof tool
- Getting ready
- How to do it...
- How it works...
- Benchmarking and finding bottlenecks
- Getting ready
- How to do it...
- How it works...
- Memory allocation and heap management
- Getting ready
- How to do it...
- How it works...
- Vendoring and project layout
- Getting ready
- How to do it...
- How it works...
- Using fasthttprouter and fasthttp
- Getting ready
- How to do it...
- How it works...
- Index.