1. 17

  2. 12

    Slides, for those who don’t want to watch a 40 minute video, though it is an enjoyable talk.

    1. 7

      The seven:

      1. Noisy Code
      3. Unsustainable Spacing
      4. Lego Naming
      5. Unencapsulated State
      6. Getters and Setters
      7. Uncohesive Tests
    2. 3

      I see a lot of what he talks about echoed in Effective Go.

      1. 1

        I find it interesting that many of these habits are things which require effort to do, and end up counterproductive. For example, adding getters and setters for everything (urgh!), adding a test per method (I’ve never seen that anti-pattern myself; but then again at every job I’ve had it’s been me whose introduced automated testing!), adding linguistic fluff to identifiers, etc.

        In contrast, the others are either “standard” choices that break down (like indentation which rots after refactoring), or laziness/missed-opportunities (like “stringly typed” programming, or lack of abstraction).

        I’m generally (in life, as well as programming) sympathetic to the latter, but get very frustrated by the former.