Skip to content

Instantly share code, notes, and snippets.

@bobuss
Last active March 31, 2024 09:41
Show Gist options
  • Star 80 You must be signed in to star a gist
  • Fork 19 You must be signed in to fork a gist
  • Save bobuss/6534934 to your computer and use it in GitHub Desktop.
Save bobuss/6534934 to your computer and use it in GitHub Desktop.
The 9 Rules of Object Calisthenics

Object Calisthenics outlines 9 basic rules to apply when performing the exercise:

  • One level of indentation per method.
  • Don't use the ELSE keyword.
  • Wrap all primitives and Strings in classes.
  • First class collections.
  • One dot per line.
  • Don't abbreviate.
  • Keep all classes less than 50 lines.
  • No classes with more than two instance variables.
  • No getters or setters.

Also see the "Your code sucks, let's fix-it" presentation by Rafael Dohms.

@iqbalrohail
Copy link

I have been reading it but didn't understand the concept of no getters and setters .
Will you please explain it a little bit?

@Tulakshana
Copy link

Tulakshana commented Aug 7, 2021

@iqbalrohail,

Don’t make decisions outside of the class, let the class do its job, follows the Tell don’t ask principle.

I would prefer to see the above list as guidelines not rules. Also see https://levelup.gitconnected.com/learn-these-9-rules-to-start-writing-clean-code-immediately-a7ee40fe1e1b

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