Skip to content

Instantly share code, notes, and snippets.

@asierba
Last active January 9, 2020 16:57
Show Gist options
  • Save asierba/5028e63991ce787fe383 to your computer and use it in GitHub Desktop.
Save asierba/5028e63991ce787fe383 to your computer and use it in GitHub Desktop.

List of possible constraints for a kata

  • No constraints
  • Small methods: 4 lines each
  • No if statements
  • No primitives
  • No loops
  • Baby steps
  • Change approach, if you're doing bottom-up (Cell class first),try top-down (Board class first)
  • Communicate clearly, precise naming
  • Legibility. Let the code be read as if it was a small story.
  • No more than one level of indentation per method
  • Functional programming: No "variable" may be modified after it has a value
  • Imperative Programming: No return values for any method
  • Verbs instead of nouns
  • Force at least 4 times duplication to emerge before removing it
  • TDD as if you meant it
  • No Mouse
  • Text editor only
  • Paper only
  • Mute pair programming
  • Have everyone vote for the constraint
  • Evil Implementer (or "Find The Loophole"): Only implement what it takes to pass the test, even if it doesn't drive the product forward at all!
  • Object calisthenics
    • Only One Level Of Indentation Per Method
    • Don't Use The ELSE Keyword
    • Wrap All Primitives And Strings
    • First Class Collections
    • One Dot Per Line
    • Don't Abbreviate
    • Keep All Entities Small
    • No Classes With More Than Two Instance Variables
    • No Getters/Setters/Properties

http://coderetreat.org/facilitating/activity-catalog

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment