Practical techniques for writing code that is robust, reliable, and easy for team members to understand and adapt. Summary In Good Code, Bad Code you’ll learn how to: Think about code like an effective software engineer Write functions that read like well-structured sentences Ensure code is reliable and bug free Effectively unit test code Identify code that can cause problems and improve it Write code that is reusable and adaptable to new requirements Improve your medium and long-term productivity Save yourself and your team time The difference between good code or bad code often comes down to how you apply the established practices of the software development community. In Good Code, Bad Code you’ll learn how to boost your productivity and effectiveness with code development insights normally only learned through careful mentorship and hundreds of code reviews. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Software development is a team sport. For an application to succeed, your code needs to be robust and easy for others to understand, maintain, and adapt. Whether you’re working on an enterprise team, contributing to an open source project, or bootstrapping a startup, it pays to know the difference between good code and bad code. About the book Good Code, Bad Code is a clear, practical introduction to writing code that’s a snap to read, apply, and remember. With dozens of instantly-useful techniques, you’ll find coding insights that normally take years of experience to master. In this fast-paced guide, Google software engineer Tom Long teaches you a host of rules to apply, along with advice on when to break them! What's inside Write functions that read like sentences Ensure your code stays bug-free How to sniff out bad code Save time for yourself and your team About the reader For coders early in their careers who are familiar with an object-oriented language, such as Java or C#. About the author Tom Long is a software engineer at Google where he works as a tech lead. Among other tasks, he regularly mentors new software engineers in professional coding best practices. Table of Contents PART 1 IN THEORY 1 Code quality 2 Layers of abstraction 3 Other engineers and code contracts 4 Errors PART 2 IN PRACTICE 5 Make code readable 6 Avoid surprises 7 Make code hard to misuse 8 Make code modular 9 Make code reusable and generalizable PART 3 UNIT TESTING 10 Unit testing principles 11 Unit testing practices
Brad J. Cox, Object-Oriented Programming: An Evolutionary Approach (Reading, MA: Addison-Wesley, 1986), iv, 51. 22. Bertrand Meyer, “Genericity vs. Inheritance” (paper presented at OOPSLA 1986, Portland, Oregon, September 29–October 2, ...
Looks at the principles and clean code, includes case studies showcasing the practices of writing clean code, and contains a list of heuristics and "smells" accumulated from the process of writing clean code.
This book provides clear guidance on how best to avoid these pathological approaches to writing JavaScript: Recognize you have a problem with your JavaScript quality. Forgive the code you have now, and the developers who made it.
In this book, you'll learn forensic psychology techniques to successfully maintain your software.
This book will help you Understand the core principles of refactoring and the reasons for doing it Recognize “bad smells” in your Ruby code Rework bad designs into well-designed code, one step at a time Build tests to make sure your ...
In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases.
Widely considered one of the best practical guides to programming, Steve McConnell’s original CODE COMPLETE has been helping developers write better software for more than a decade.
What others in the trenches say about The Pragmatic Programmer... “The cool thing about this book is that it’s great for keeping the programming process fresh.
This book concentrates on eight pillars of seriously good software: speed, memory usage, reliability, readability, thread safety, generality, and elegance. The Java-based examples demonstrate techniques that apply to any OO language.
I run the tests again (with small values of maxArraySize and maxValue to make the output easier to read) and get the following: java.lang.AssertionError: Theory 4 - Array=[2, 11, 36, 66, 104, 108, 108, 108, 122, 155, 159, 161, ...