Design maxims

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m (Reverted edits by Ebybymic (Talk); changed back to last version by LukeRobinson)
 
(12 intermediate revisions by 8 users not shown)
Line 3: Line 3:
 
  maxim:: (noun) A general truth or rule of conduct expressed in a sentence.
 
  maxim:: (noun) A general truth or rule of conduct expressed in a sentence.
  
Lets use the term ''maxim'' to mean all the rules, laws, guidelines, principles, heuristics, strategies, patterns and idioms that are named by a standard phrase.
+
Let's use the term ''maxim'' to mean all the rules, laws, guidelines, principles, heuristics, strategies, patterns and idioms that are named by a standard phrase.
  
 
[[Maxim Hierarchy]] - An attempt at creating a hierarchy of maxims can be found here.
 
[[Maxim Hierarchy]] - An attempt at creating a hierarchy of maxims can be found here.
Line 38: Line 38:
 
* [[Impedance mismatch]]
 
* [[Impedance mismatch]]
 
* [[Information hiding]]
 
* [[Information hiding]]
 +
* [[Intelligent children pattern]]
 
* [[Interface segregation principle]]
 
* [[Interface segregation principle]]
 
* [[Keep accessors and mutators separate]]
 
* [[Keep accessors and mutators separate]]
Line 48: Line 49:
 
* [[No concrete base classes]]
 
* [[No concrete base classes]]
 
* [[No silver bullet]]
 
* [[No silver bullet]]
 +
* [[Once and only once]]
 
* [[One responsibility rule]]
 
* [[One responsibility rule]]
 
* [[Open closed principle]]
 
* [[Open closed principle]]
* [[Once and only once]]
+
* [[Option-operand separation]]
 
* [[Premature optimization]]
 
* [[Premature optimization]]
 
* [[Program to the interface not the implementation]]
 
* [[Program to the interface not the implementation]]
Line 66: Line 68:
 
==Clumps of Maxims==
 
==Clumps of Maxims==
 
These are groups of Maxims, usually gathered by the developer(s) who proposed them.
 
These are groups of Maxims, usually gathered by the developer(s) who proposed them.
 +
 +
===COSC 427's:===
 +
* [[Make constructors blocking]]
 +
* [[No Peter Pan objects]]
 +
* [[Avoid mixing inputs and outputs]]
  
 
=== [[Johnson and Foote's heuristics]]:===
 
=== [[Johnson and Foote's heuristics]]:===
Line 82: Line 89:
 
* [[Reduce implicit parameter passing]]
 
* [[Reduce implicit parameter passing]]
  
===[[Riel's heuristics]]===
+
===[[Riel's heuristics]]:===
 
* All of Riel's heuristics can be found [[Riel's heuristics|here]].
 
* All of Riel's heuristics can be found [[Riel's heuristics|here]].
  
Line 117: Line 124:
 
* [[Managing IT resources]]
 
* [[Managing IT resources]]
 
* [[Managing technology transfer]]
 
* [[Managing technology transfer]]
 +
 +
===[[Joshua Bloch]]:===
 +
* [[Joshua Bloch 2006 Bumper Sticker API Design | Bumper Sticker API Design]]
  
 
== See Also ==
 
== See Also ==
 
* [[Code smells]]
 
* [[Code smells]]
 
* [[Patterns]]
 
* [[Patterns]]
 +
* [http://programmer.97things.oreilly.com/wiki/index.php/Edited_Contributions Edited Contributions] - A whole heap of maxims and ideas...

Latest revision as of 03:08, 25 November 2010

Contents

Object Oriented Design Maxims

maxim:: (noun) A general truth or rule of conduct expressed in a sentence.

Let's use the term maxim to mean all the rules, laws, guidelines, principles, heuristics, strategies, patterns and idioms that are named by a standard phrase.

Maxim Hierarchy - An attempt at creating a hierarchy of maxims can be found here.

Maxims

Clumps of Maxims

These are groups of Maxims, usually gathered by the developer(s) who proposed them.

COSC 427's:

Johnson and Foote's heuristics:

Riel's heuristics:

  • All of Riel's heuristics can be found here.

Bob Martin's principles:

Ken Auer 1995:

Alan Davis 1995:

To be completed...

William Brown 1998:

Joshua Bloch:

See Also

Personal tools