Hall of fame

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m (Reverted edits by Ebybymic (Talk); changed back to last version by Stephen Fitchett)
 
(13 intermediate revisions by 6 users not shown)
Line 6: Line 6:
  
 
* [[Goto considered harmful]]
 
* [[Goto considered harmful]]
 
+
* [[Don't repeat yourself]]
 +
* [[Program to the interface not the implementation]]
 +
* [[Keep accessors and mutators separate]]/ [[Avoid side effects]]
  
 
== Most excellent ideas ==
 
== Most excellent ideas ==
Line 13: Line 15:
  
 
* [[Design by contract]]
 
* [[Design by contract]]
 
+
* [[Liskov substitution principle]]
 +
* [[Behavioral completeness]]
 +
* [[Information hiding]]
 +
* [[Don't expose mutable attributes]]
  
 
== Helpful ideas ==
 
== Helpful ideas ==
  
''General knowledge that identifies forces that should normally be taken into consideratuion.''
+
''General knowledge that identifies forces that should normally be taken into consideration.''
  
 
* [[Design patterns]]
 
* [[Design patterns]]
 +
* [[Keep it simple]] (beginners probably often violate this one, therefore it should be one of the most important ideas)
  
  
Line 27: Line 33:
  
 
* [[Call super]]
 
* [[Call super]]
 +
* [[Law of demeter]]
 +
* [[Big design up front]]
  
  
 
== Wack ideas ==
 
== Wack ideas ==
  
''These are wrong.  Followinf this advice will make dyour de3signs worse.''
+
''These are wrong.  Following this advice will make your designs worse.''
  
 
* [[If it ain't broke don't fix it]]
 
* [[If it ain't broke don't fix it]]

Latest revision as of 03:22, 25 November 2010

This page is an attempt to make sense of the overwhelming morass of OOD advice by classifying it by how valuable we consider it to be.

Contents

Inviolable laws

We the people hold these things to be absolute and inviolable laws of OO design. Anyone breaking these maxims should be publically mocked and made to program in COBOL forevermore.

Most excellent ideas

Everybody should know about these & try to follow them. Any exceptions need convincing justification.

Helpful ideas

General knowledge that identifies forces that should normally be taken into consideration.


Controversial ideas

Debatable propositions. Might help in some cases, but not everyone agrees.


Wack ideas

These are wrong. Following this advice will make your designs worse.

Personal tools