Beyond Effective Go
Are you a Go programmer with 6+ months of experience?
Have you learned everything you can from Effective Go and wondered what to
learn next?
Then Beyond Effective Go is for you.
These books, aimed at competent Gophers, don't mess around with the basics. Instead, they dive right into the problems
professional programmers face every day. Like, how to write applications and services that are fast, robust, and able to
be maintained and extended as requirements change.
These books focus on both the programmer and the code by addressing four critical aspects of Go programming, developer
productivity, application performance, code quality, and depth of understanding of the language and tools available.
After reading this book, you will know what aspects of your application or code to focus on and when. You will have a
suite of tools, software patterns, and recipes to make your life easier and your code better, faster, and easier to
maintain.
What is going on here?
The code in this repository is the companion code for this book series. The series was started a while ago, and due to,
well, life issues, it was not completed then. This book was initially titled "Advanced Go" and was to be written under
contract with Packt. However, because of the delay, this is no longer the case. I am now attempting to complete this
work as a series of books in my spare time between other work and life commitments.
As you will see by the chapter statuses (below), it is a work in progress.
With that out of the way, I want to request help. I find no greater reward for my writing than knowing that I have
helped someone learn; thus, I invite you to help me finish this book by reading any of the chapters below and letting me
know your thoughts. Similarly, if you have read a completed book, please leave a review (good, bad, or ugly) on your
favorite bookstore's website. I am absolutely looking for positive and negative comments (preferably in the form of
constructive criticism).
If something needs more explanation, please tell me.
If something needs less explanation, please tell me.
If something needs an example, please tell me.
Like software, the earlier problems are identified, the easier they are to fix. And once something is published, it
can't be easily changed. Please check the appropriate link and request access to the individual chapters.
Structure
This book series is (currently) organized into 3 books:
- Achieving High-Performance Code
- Striving for High-Quality Code
This book focuses on writing blazing-fast code because sometimes we need to extract every last drop of performance from
our system.
Chapters:
Chapter |
Title |
Status |
Link |
1 |
Understanding Concurrency, Parallelism, and the Sync Packages |
Published |
Purchase Book |
2 |
Applying Expert-level Go concurrency: Primitives, Patterns, and Tools |
Published |
Purchase Book |
3 |
Achieving High-Performance Code |
Published |
Purchase Book |
Part 2: Striving for High-Quality Code
This book discusses writing eminently readable, maintainable, and extendable code. In most applications, the code's
quality determines how easy it is to maintain and extend and how much we will enjoy doing so. At the end of the book,
I've also included some interesting "other" things you can do with Go, like functional programming and metaprogramming.
These don't necessarily directly lead to quality, but they can lead to productivity and improved language understanding.
Chapters:
Chapter |
Title |
Status |
Link |
4 |
Exploring Software Design Principles and Patterns |
Editing |
Pre-order link coming soon! |
5 |
Optimizing for Code UX |
Editing |
Pre-order link coming soon! |
6 |
Advanced Unit Testing Techniques |
Editing |
Pre-order link coming soon! |
7 |
Improving your Development Productivity |
Editing |
Pre-order link coming soon! |
8 |
Examining Unusual Patterns for Go |
Editing |
Pre-order link coming soon! |
9 |
Metaprogramming |
Editing |
Pre-order link coming soon! |
If this content is your kind of thing, consider joining
my Google Group (very low traffic and no spam). Book
updates
will be posted there.