Maxim Hierarchy

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m (Avoid unnecessary complexity)
Line 21: Line 21:
 
* [[One responsibility rule]]
 
* [[One responsibility rule]]
 
* [[Stable dependencies principle]] - ?
 
* [[Stable dependencies principle]] - ?
 +
 +
 
===== Hide Stuff =====
 
===== Hide Stuff =====
 
* [[Fat interfaces]]
 
* [[Fat interfaces]]
Line 41: Line 43:
 
* [[Avoid side effects]]
 
* [[Avoid side effects]]
 
* [[Command query separation]]
 
* [[Command query separation]]
 +
* [[Keep accessors and mutators separate]]
 +
* [[Design by contract]] - The placement of this maxim is difficult...
 
=== Avoid unnecessary complexity ===
 
=== Avoid unnecessary complexity ===
 
==== Reuse ====
 
==== Reuse ====
Line 59: Line 63:
 
* [[Common closure principle]]
 
* [[Common closure principle]]
 
* [[Single choice principle]]
 
* [[Single choice principle]]
 
* [[Keep accessors and mutators separate]]
 
* [[Design by contract]] - The placement of this maxim is difficult...
 
 
 
=== Minimise connections ===
 
=== Minimise connections ===
 
* [[Acyclic dependencies principle]]
 
* [[Acyclic dependencies principle]]

Revision as of 10:10, 27 September 2009

This is one attempt to categorise maxims.

Contents

Design & implementation

All those maxims related to the system itself.

Separate and group system parts rationally

Class & Package Level

This is a rather large block... are there any overarching rules that can group these components...

Data & Behaviour


Hide Stuff
Inheritance

Method Level

Avoid unnecessary complexity

Reuse

Do only what is necessary

Readable Code is Good Code

Group Stuff To Reduce Complexity

Minimise connections

Process & Organisation

All the maxims related to the development processes and management of the development team.

OO Developers are not perfect

Personal tools