About the Bundle
Rich Hickey is quoted as saying "Programming is not about typing... it's about thinking". Both of the books in this bundle embrace this view of the world, and provide readers with concise and concrete advice on how to simplify their code.
Modern software development is a game of ever-increasing frequency of change; it's imperative to build flexible systems that can adapt to changing requirements. Corey Haines embraces this environment, and became inspired to write a book on dealing with neverending change. The finished product is Understanding the Four Rules of Simple Design, and within its pages you'll find concrete examples of ways to build flexible, adaptable software systems.
Unit Testing has moved from fringe to mainstream, which is great. Unfortunately, developers are creating mountains of unmaintainable tests as a side effect. Working Effectively with Unit Tests details Jay Fields' opinions on the best way to test, while acknowledging alternative styles and contexts in which tests are written. Whether you prefer Jay's style or not, this book will help you write better Unit Tests.
Working Effectively with Unit Tests
tl;dr: This book details my strong opinions on the best way to test, while acknowledging alternative styles and various contexts in which tests are written. Whether you prefer my style or not, this book will help you write better Unit Tests.
From the Preface:
Over a dozen years ago I read Refactoring for the first time; it immediately became my bible. While Refactoring isn’t about testing, it explicitly states: If you want to refactor, the essential precondition is having solid tests. At that time, if Refactoring deemed it necessary, I unquestionably complied. That was the beginning of my quest to create productive unit tests.
Throughout the 12+ years that followed reading Refactoring I made many mistakes, learned countless lessons, and developed a set of guidelines that I believe make unit testing a productive use of programmer time. This book provides a single place to examine those mistakes, pass on the lessons learned, and provide direction for those that want to test in a way that I’ve found to be the most productive.
The book does touch on some theory and definition, but the main purpose is to show you how to take tests that are causing you pain and turn them into tests that you're happy to work with. If you're like me and enjoy examples, you can take a (free) look at Chapter 1 right now. The foreword, preface, and first 2 chapters are available within The Sample.
Reviews are available at review.wewut.com.
"I trust Jay Fields' opinions about how to write good programmer tests, and so should you." -- J. B. Rainsberger @jbrains
"Buy this. That is all." -- Dan North @tastapod
"This book is a breath of fresh air! Excellent work! The evolution of a hairy test to something really clean is elegant. I wish more people wrote tests like this. Having a book to point people at will really help." -- Joe Walnes @joewalnes
"I just read through what Jay Fields has so far, and it is looking to be really great. I highly recommend it..." -- Corey Haines @coreyhaines
Understanding the Four Rules of Simple Design
and other lessons from watching thousands of pairs work on Conway's Game of Life
Check out some feedback from readers.
Modern software development is a game of ever-increasing frequency of change. This is why it is imperative to build systems that are flexible and can adapt to changing requirements, both expected and (more often) unexpected. That is why I've written this book.
From 2009 to 2014, I traveled the world working with software developers, both individually and in teams, to improve their craft. Primarily, I did this through a training workshop format called coderetreat. Over those years, I had the opportunity to watch 1000's of pairs of programmers work on exactly the same system, Conway's Game of Life. As time progressed, I began to see patterns arise. I noticed common techniques and designs that spanned languages and companies and crossed national borders.
As co-founder and a facilitator of coderetreat workshops, I had the unique opportunity to provide feedback, both direct and through questions, on improving the act of writing adaptable, simple code. Through the day, we worked on improving our ability to make good choices around the minute-by-minute decisions made while writing code.
This book is about those things I learned from watching these 1000's of pairs working on the same problem. It contains a large part of the feedback that I provide during a typical coderetreat. The primary focus is on the thought process behind refactoring, and how that is influenced by the 4 rules of simple design.
This book is not about Conway's Game of Life. Instead, it uses its domain as a backdrop to discuss the thoughts and ideas behind the 4 rules of simple design. It focuses on the small decisions made while designing your code with the goal of building robust, adaptable codebases that can stand the test of time.
With forewords by Joe Rainsberger and Kent Beck.
Curious what the book is like?
I've put together a free downloadable sample of the book with one of the examples (having test names influence the api) and a section on the ping-pong pair-programming style.
The Leanpub 45-day 100% Happiness Guarantee
Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms...