Most interesting links of May ’13

Recommended Readings ThoughWorks Technology Radar May 2013 – Maven replaced by Gradle, Clojure and Scala on adopt, big enterprise SW and WS-* out, lot of interesting stuff to adopt or assess Straw Man TDD: debunking 6 common TDD myths (via M.Fowler) – such as TDD = {no upfront design, 2*longer development, # hard-to-change test code}.Continue reading “Most interesting links of May ’13”

Tip: Include Context And Propose Solutions In Your Error Messages

A Puppet run has failed with an error message like this: “No matching selector for ‘prod’ at some_puppet_file.pp:31” If you know puppet well enough, you will immediatelly know what is wrong and how to fix it. But what if you don’t know what a ‘selector’ is? Interpreting error messages is often hard without deep knowledgeContinue reading “Tip: Include Context And Propose Solutions In Your Error Messages”

Lesson Learned: Don’t Use Low-Level Lib To Test High-Level Code

Summary: Using a fake http library to test logic two levels above HTTP is unnecessarily complex and hard to understand. Fake instead the layer directly below the logic you want to test and verify the low-level HTTP interaction separately. In general: Create thin horizontal slices for unit testing, checking each slice separately with nicely focusedContinue reading “Lesson Learned: Don’t Use Low-Level Lib To Test High-Level Code”

Becoming A Better Programmer Through The Study of Good And Bad Code & Design

Reading books about good design and good coding practices such as Clean Code is very helpful but it isn’t enough to become a good programmer. We need to see both good and bad code in practice, perhaps many times, to start to really understand and appreciate the principles and qualities of clean/good code. (And, ofContinue reading “Becoming A Better Programmer Through The Study of Good And Bad Code & Design”