Thinking Craftsman Code Review Checklist

For file /class

  • Dead/Redundant code
  • Duplication
  • Is there Global State ?
    (singleton, static variables, global variables)
  • Dependencies
    • ( added/changed )
  • Is it Tell or Ask ?
  • Is Inheritance Correct ? (Liskov Substitution)

For Each function

  • Complexity
    • (Cyclomatic, Large functions, Block depth)
  • Assumptions and Side effects
  • Law of Demeter Violations
  • Is it Handling Errors ?
  • Is it easy to Misuse ?
  • Is it “failing fast” ?