Summary
This chapter has taken the steps we’ve already been following and made them explicit.
You now know to write code the way you want it to be used first, instead of diving into the details and working from the bottom up in order to avoid build failures. It’s better to work from the top, or an end user point of view, so that you will have a solution you’ll be happy with, instead of a buildable solution that is hard to use. You do this by writing tests as you would like your code to be used. Once you are happy with how your code will be used, then build it and look at the build errors to fix them. Getting the tests to pass is not the goal yet. This slight change in focus will lead to designs that are easier and more intuitive to use.
Once your code builds, the next step is to do only what is needed to get the tests to pass. It’s always possible that a change will cause tests that used to pass to now fail. That’s okay and is another good reason...