Beyond Effective Go


Book Description

Are you an experienced Go developer that wants to be more productive? Do you want to write cleaner, faster, and easier to maintain code? Then the Beyond Effective Go book series is for you. This series is aimed at competent Gophers. It does not mess around with the basics but instead dives right into the daily problems that professional programmers face. Chiefly, how to write fast, robust applications and services that can be maintained and extended as requirements change. Unlike most books, Beyond Effective Go focuses on the programmer and the code by addressing the four critical aspects of programming in Go - developer productivity, application performance, code quality, and depth of understanding of the language and tools. This book, Part 1 of the series, focuses on achieving high-performance code. You will learn which aspects of your application or code to focus on and when. You will have a suite of tools, software patterns, and recipes at your disposal to make your life easier. After reading, you will: - Understand the differences between Concurrency and Parallelism. - Identify and avoid concurrency issues like deadlock, starvation, livelock, and data races. - Understand the various concurrency interaction patterns and be able to apply the one that best fits the problem at hand. - Take a deep dive into Go’s concurrency primitives and be able to apply them expertly but also avoid many of their gotchas. - Be able to diagnose concurrency and performance issues using Go’s profiler, execution tracing, and benchmarking tools. - Be able to identify when code needs optimizing, what needs optimizing and how. - Have a catalog of concurrency and performance patterns that you can quickly apply to your projects.




Hands-On Dependency Injection in Go


Book Description

Explore various dependency injection methods in Go such as monkey patching, constructor injection, and method injection Key FeaturesLearn to evaluate Code UX and make it betterExplore SOLID principles and understand how they relate to dependency injectionUse Google's wire framework to simplify dependence managementBook Description Hands-On Dependency Injection in Go takes you on a journey, teaching you about refactoring existing code to adopt dependency injection (DI) using various methods available in Go. Of the six methods introduced in this book, some are conventional, such as constructor or method injection, and some unconventional, such as just-in-time or config injection. Each method is explained in detail, focusing on their strengths and weaknesses, and is followed with a step-by-step example of how to apply it. With plenty of examples, you will learn how to leverage DI to transform code into something simple and flexible. You will also discover how to generate and leverage the dependency graph to spot and eliminate issues. Throughout the book, you will learn to leverage DI in combination with test stubs and mocks to test otherwise tricky or impossible scenarios. Hands-On Dependency Injection in Go takes a pragmatic approach and focuses heavily on the code, user experience, and how to achieve long-term benefits through incremental changes. By the end of this book, you will have produced clean code that’s easy to test. What you will learnUnderstand the benefits of DIExplore SOLID design principles and how they relate to GoAnalyze various dependency injection patterns available in GoLeverage DI to produce high-quality, loosely coupled Go codeRefactor existing Go code to adopt DIDiscover tools to improve your code’s testability and test coverageGenerate and interpret Go dependency graphsWho this book is for Hands-On Dependency Injection in Go is for programmers with a few year s experience in any language and a basic understanding of Go. If you wish to produce clean, loosely coupled code that is inherently easier to test, this book is for you.




Beyond Goals


Book Description

What is there in developmental relationships beyond setting and striving to achieve goals? The presence of goals in coaching and mentoring programs has gone largely unquestioned, yet evidence is growing that the standard prescription of SMART, challenging goals is not always appropriate - and even potentially dangerous - in the context of a complex and rapidly changing world. Beyond Goals advances standard goal-setting theory by bringing together cutting-edge perspectives from leaders in coaching and mentoring. From psychology to neuroscience, from chaos theory to social network theory, the contributors offer diverse and compelling insights into both the advantages and limitations of goal pursuit. The result is a more nuanced understanding of goals, with the possibility for practitioners to bring greater impact and sophistication to their client engagements. The implications of this reassessment are substantial for all those practicing as coaches and mentors, or managing coaching or mentoring initiatives in organizations.




Beyond Performance


Book Description

The secret of achieving and sustaining organizational excellence revealed In an ever-changing world where only a third of excellent organizations stay that way over the long term, and where even fewer are able to implement successful change programs, leaders are in need of big ideas and new tools to thrive. In Beyond Performance, McKinsey & Company's Scott Keller and Colin Price give you everything you need to build an organization that can execute in the short run and has the vitality to prosper over the long term. Drawing on the most exhaustive research effort of its kind on organizational effectiveness and change management, Keller and Price put hard science behind their big idea: that the health of an organization is equally as important as its performance. In the book's foreword, management guru Gary Hamel refers to this notion as "a new manifesto for thinking about organizations." The authors illustrate why copying management best practices from other companies is more dangerous than helpful Clearly explains how to determine the mutually reinforcing combination of management practices that best fits your organization's context Provides practical tools to achieve superior levels of performance and health through a staged change process: aspire, assess, architect, act, and advance. Among these are new techniques for dealing with those aspects of human behavior that are seemingly irrational (and therefore confound even the smartest leaders), yet entirely predictable Ultimately, building a healthy organization is an intangible asset that competitors copy at their peril and that enables you to skillfully adapt to and shape your environment faster than others—giving you the ultimate competitive advantage.




Go in Practice


Book Description

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 specific strategies you can use in your day-to-day applications. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. 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 PART 1 - BACKGROUND AND FUNDAMENTALS Getting into Go A solid foundation Concurrency in Go PART 2 - WELL-ROUNDED APPLICATIONS Handling errors and panic Debugging and testing PART 3 - AN INTERFACE FOR YOUR APPLICATIONS HTML and email template patterns Serving and receiving assets and forms Working with web services PART 4 - TAKING YOUR APPLICATIONS TO THE CLOUD Using the cloud Communication between cloud services Reflection and code generation




How To Code in Go


Book Description




Beyond Pleasure and Pain


Book Description

Rather, they work together.




Beyond Performance 2.0


Book Description

Double your odds of leading successful, sustainable change Leaders aren’t short on access to change management advice, but the jury has long been out as to which approach is the best one to follow. With the publication of Beyond Performance 2.0, the verdict is well and truly in. By applying the approach detailed by authors, Scott Keller and Bill Schaninger, the evidence shows that leaders can more than double their odds of success—from thirty percent to almost eighty. Whereas the first edition of Beyond Performance introduced the authors’ “Five Frames of Performance and Health” approach to change management, the fully revised and updated Beyond Performance 2.0 has been transformed into a truly practical “how to” guide for leaders. Every aspect of how to lead change at scale is covered in a step-by-step manner, always accompanied by practical tools and real-life examples. Keller and Schaninger’s work is distinguished in many ways, one of which is the rigor behind the recommendations. The underpinning research is the most comprehensive of its kind—based on over 5 million data points drawn from 2,000 companies globally over a 15-year period. This data is overlaid with the authors’ combined more than 40 years of experience in helping companies successfully achieve large-scale change. As senior partners in McKinsey & Company, consistently named the world’s most prestigious management consulting firm, Keller and Schaninger also draw on the shared experience of their colleagues from offices in over 60 countries with unrivaled access to CEOs and senior teams. Beyond Performance 2.0 also dares to go against the grain—eschewing the notion of copying best practices and instead guiding leaders to make choices specific to their unique context and organization. It does this with meticulously balance of focus on short- and long-term considerations, and on fully addressing the hard technical and oft cultural elements of making change happen. Further, the approach doesn’t just focus on delivering change; it builds an organization’s muscle to continuously change, making it healthier so that it can act with increased speed and agility to stay perpetually ahead of its competition. Leaders looking for a proven approach to leading large-scale change from a trusted source have found what they are looking for in Beyond Performance 2.0.




Programming Beyond Practices


Book Description

Writing code is the easy part of your work as a software developer. This practical book lets you explore the other 90%—everything from requirements discovery and rapid prototyping to business analysis and designing for maintainability. Instead of providing neatly packaged advice from on high, author Gregory Brown presents detailed examples of the many problems developers encounter, including the thought process it takes to solve them. He does this in an unusual and entertaining fashion by making you the main character in a series of chapter-length stories. As these stories progress, the examples become more complex, and your responsibilities increase. Together, these stories take you on a journey that will make you question and refine the way you think about, and work on, software projects. Steps in this unique journey include: Using prototypes to explore project ideas Spotting hidden dependencies in incremental changes Identifying the pain points of service integrations Developing a rigorous approach towards problem-solving Designing software from the bottom up Data modeling in an imperfect world Gradual process improvement as an antidote for over-commitment The future of software development




Introducing Go


Book Description

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 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