1. 15

Although the book is not released yet, I feel it’s noteworthy because a) it’s a well known, influential book and b) the language used for the examples is changing. The second footnote is worth pointing out:

When I wrote the first edition I was frustrated that I was having to write the book’s code in a language that was significantly worse than the language I preferred (Smalltalk). Little did I know that I would take another step downwards twenty years later.

  1.  

  2. 5

    Interesting choice to use JS, especially because types actually help a great deal while refactoring. And the rise of TypeScript. On the other hand, the first really useful tool for automated refactoring was implemented in Smalltalk [1].

    Anyway, personally this book had a big influence on me while learning “how to build software” (vs. hacking something together). Along with [2,3,4,5,6].

    • [1] Roberts et al. A Refactoring Tool for Smalltalk. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.9246&rep=rep1&type=pdf
    • [2] Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software
    • [3] Kerievsky. Refactoring to Patterns
    • [4] Evans. Domain-Driven Design: Tackling Complexity in the Heart of Software
    • [5] Meszaros. xUnit Test Patterns: Refactoring Test Code
    • [6] Beck. Test Driven Development: By Example
    1. 1

      Did you spend a lot of quality time on the C2 wiki too?

        1. 2

          Since “Ken Thompson Hack” was mentioned, I’m throwing in my obligatory link about guy who discovered it, told him about it, and co-invented ways to solve it before Thompson published it. I list solutions that achieved some of maximum assurance he was hoping for. rain1, some others, and I collected a lot of other building blocks here, too, if anyone wants to assure or play with them.

        2. 1

          I loved C2. I think it got shut down a bit over spam or something. Then redone as a less efficient site. I found it close to when one or other of those happened. Can’t remember. I do remember reading all the arguments on stuff like LISP and programming practices. Fun times.