More on this book
Community
Kindle Notes & Highlights
Read between
September 21 - November 15, 2019
Code without tests is bad code. It doesn’t matter how well written it is; it doesn’t matter how pretty or object-oriented or well-encapsulated it is. With tests, we can change the behavior of our code quickly and verifiably. Without them, we really don’t know if our code is getting better or worse.
Dmytro Shteflyuk liked this
Preserving existing behavior is one of the largest challenges in software development. Even when we are changing primary features, we often have very large areas of behavior that we have to preserve.
Unit testing is one of the most important components in legacy code work. System-level regression tests are great, but small, localized tests are invaluable. They can give you feedback as you develop and allow you to refactor with much more safety.
Dependency is one of the most critical problems in software development. Much legacy code work involves breaking dependencies so that change can be easier.
Dmytro Shteflyuk liked this
Decorator is a nice pattern, but it is good to use it sparingly. Navigating through code that contains decorators that decorate other decorators is a lot like peeling away the layers of an onion. It is necessary work, but it does make your eyes water.
Our mission, should we choose to accept it, it is to add a new method to this class.
Dmytro Shteflyuk liked this
The most important tool that we have in our arsenal is knowledge of our programming language.

