Some rules must be followed and embraced to create great software designs.
This article summarizes them, serving as an index to full stories.
TL;DR: Important concepts about Object-Oriented Programming
Build a MAPPER
Keep a bijection to real entities:
Do not use null
Avoid Accidental IFs
Favor immutability:
Avoid Setters and Getters:
Avoid Coupling:
Fail Fast:
Avoid Meta-Programming:
Avoid Dynamic Code Generation:
Choose meaningful names
Build a Theory
Avoid Accidental Complexity
Get Inspired by Quotes
Do not use Singleton:
Avoid Code Smells
Understand Refactorings
This series aims to spark debate and discussion on software design.
Your comments and suggestions are highly appreciated.
This article is also available in Spanish here.