Maxim Hierarchy

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m (Avoid unnecessary complexity)
Line 42: Line 42:
 
* [[Command query separation]]
 
* [[Command query separation]]
 
=== Avoid unnecessary complexity ===
 
=== Avoid unnecessary complexity ===
 +
==== Reuse ====
 +
* [[Software reuse]]
 +
* [[Once and only once]]
 
* [[Don't repeat yourself]]
 
* [[Don't repeat yourself]]
 +
* [[Reuse release equivalence principle]]
 +
==== Do only what is necessary ====
 
* [[Do the simplest thing that could possibly work]]
 
* [[Do the simplest thing that could possibly work]]
 
* [[You ain't gonna need it]]
 
* [[You ain't gonna need it]]
* [[Software reuse]]
+
* [[Premature optimization]]
 
* [[Keep it simple]]
 
* [[Keep it simple]]
 +
* [[Establishing priorities]]
 +
==== Readable Code is Good Code ====
 
* [[Named constants]]
 
* [[Named constants]]
 
* [[Goto considered harmful]]
 
* [[Goto considered harmful]]
 +
==== Group Stuff To Reduce Complexity ====
 
* [[Common closure principle]]
 
* [[Common closure principle]]
* [[Establishing priorities]]
 
* [[Keep accessors and mutators separate]]
 
* [[Once and only once]]
 
* [[Premature optimization]]
 
 
* [[Single choice principle]]
 
* [[Single choice principle]]
* [[Reuse release equivalence principle]]
+
 
 +
* [[Keep accessors and mutators separate]]
 
* [[Design by contract]] - The placement of this maxim is difficult...
 
* [[Design by contract]] - The placement of this maxim is difficult...
 +
 
=== Minimise connections ===
 
=== Minimise connections ===
 
* [[Acyclic dependencies principle]]
 
* [[Acyclic dependencies principle]]

Revision as of 10:09, 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