Book description
With technological advancements, fast markets, and higher complexity of systems, software engineers tend to skip the uncomfortable topic of software efficiency. However, tactical, observability-driven performance optimizations are vital for every product to save money and ensure business success.
With this book, any engineer can learn how to approach software efficiency effectively, professionally, and without stress. Author Bartłomiej Płotka provides the tools and knowledge required to make your systems faster and less resource-hungry. Efficient Go guides you in achieving better day-to-day efficiency using Go. In addition, most content is language-agnostic, allowing you to bring small but effective habits to your programming or product management cycles.
This book shows you how to:
- Clarify and negotiate efficiency goals
- Optimize efficiency on various levels
- Use common resources like CPU and memory effectively
- Assess efficiency using observability signals like metrics, logging, tracing, and (continuous) profiling via open source projects like Prometheus, Jaeger, and Parca
- Apply tools like
go test
,pprof
,benchstat
, andk6
to create reliable micro and macro benchmarks - Efficiently use Go and its features like slices, generics, goroutines, allocation semantics, garbage collection, and more!
Publisher resources
Table of contents
- Preface
- 1. Software Efficiency Matters
-
2. Efficient Introduction to Go
-
Basics You Should Know About Go
- Imperative, Compiled, and Statically Typed Language
- Designed to Improve Serious Codebases
- Governed by Google, Yet Open Source
- Simplicity, Safety, and Readability Are Paramount
- Packaging and Modules
- Dependencies Transparency by Default
- Consistent Tooling
- Single Way of Handling Errors
- Strong Ecosystem
- Unused Import or Variable Causes Build Error
- Unit Testing and Table Tests
- Advanced Language Elements
- Is Go “Fast”?
- Summary
-
Basics You Should Know About Go
- 3. Conquering Efficiency
- 4. How Go Uses the CPU Resource (or Two)
- 5. How Go Uses Memory Resource
- 6. Efficiency Observability
- 7. Data-Driven Efficiency Assessment
- 8. Benchmarking
- 9. Data-Driven Bottleneck Analysis
- 10. Optimization Examples
- 11. Optimization Patterns
- A. Latencies for Napkin Math Calculations
- Index
- About the Author
Product information
- Title: Efficient Go
- Author(s):
- Release date: November 2022
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781098105716
You might also like
audiobook
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Data is at the center of many challenges in system design today. Difficult issues need to …
book
Building Micro-Frontends
What's the answer to today's increasingly complex web applications? Micro-frontends. Inspired by the microservices model, this …
book
Istio in Action
Solve difficult service-to-service communication challenges around security, observability, routing, and resilience with an Istio-based service mesh. …
book
Designing Data-Intensive Applications
Data is at the center of many challenges in system design today. Difficult issues need to …