- DRY ou Don't Repeat Yourself
- KISS ou Keep It Simple, Stupid!
- YAGNI ou You Ain't Gonna Need It!
- SOLID
- STUPID
- Law Of Demeter
- Tell, don't ask!
- Single Responsability Principle
- Open/Close Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
- Singleton (Static)
- Tight Coupling
- Untestable
- Premature Optimization
- Indescriptive Naming
- Duplication
- Information Expert
- Creator
- Controller
- Low Coupling
- High Cohesion
- Polymorphism
- Pure Fabrication
- Indirection
- Protected Variations
- Use only one level of indentation per method.
- Don't use the else keyword.
- Wrap all primitives and strings.
- Use only one dot per line.
- Don't abbreviate.
- Keep all entities small.
- Don't use any classes with more than two instance variables.
- Use first-class collections.
- Don't use any getters/setters/properties.
- Classes can be no longer than one hundred lines of code.
- Methods can be no longer than five lines of code.
- Pass no more than four parameters into a method. Hash options are parameters.
- Controllers can instantiate only one object. Therefore, views can only know about one instance variable and views should only send messages to that object (@object.collaborator.value is not allowed).