Just a rant

Repeat after me:

  1. I write small methods, small classes and use simple objects with a single purpose.
  2. I try to take advantage of map, flatmap, reduce, filter and friends.
  3. I write pure code wrapped in a thin layer of state management / state passing.
  4. I restrict the number of places where side-effects take place.
  5. I rely on libs and their test suites.
  6. I test properties, not just happy paths.
  7. I cherry-pick the interesting randomly generated test-cases to highlight bugfixes.

Thank you.