Schools of thought

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m (Reverted edits by Ebybymic (Talk); changed back to last version by Matthew Harward)
 
(14 intermediate revisions by 4 users not shown)
Line 5: Line 5:
 
The emergence of OO into the software mainstream was driven by [[Software reuse]], and this lead to a raft of maxims intended to encourage reusability.  But reuse flopped.  Today it isn't mentioned in polite company, and instead we say things like [[Do the simplest thing that could possibly work]] because [[You ain't gonna need it]].
 
The emergence of OO into the software mainstream was driven by [[Software reuse]], and this lead to a raft of maxims intended to encourage reusability.  But reuse flopped.  Today it isn't mentioned in polite company, and instead we say things like [[Do the simplest thing that could possibly work]] because [[You ain't gonna need it]].
  
On one side:
+
In the 'Reuse' corner:
 
* [[Big design up front]]
 
* [[Big design up front]]
 
* [[Software reuse]]
 
* [[Software reuse]]
 
* [[Extensibility]]
 
* [[Extensibility]]
  
On the other side:
+
In the 'DTSTTCPW' corner:
 
* [[You ain't gonna need it]]
 
* [[You ain't gonna need it]]
 
* [[Do the simplest thing that could possibly work]]
 
* [[Do the simplest thing that could possibly work]]
 
* [[Refactoring]]
 
* [[Refactoring]]
 +
 +
== One Ring to Rule Them All... ==
 +
 +
... one ring to find them
 +
one ring to bring them all
 +
and in the darkness bind them
 +
 +
What rule(s) underpin whole families of maxims?
 +
 +
* Wal: [[Managing complexity]]
 +
* [[Kent Beck]]: [[Eliminate duplication]]
 +
* [[Ralph Johnson]] & Foote ([[Johnson and Foote's heuristics]]): [[Software reuse]]
 +
* [[David Parnas]]: [[Information hiding]]
 +
* [[Bob Martin]]: [[Open closed principle]]
 +
* [[Bertrand Meyer]]: [[DBC]]
 +
* [[Coupling]]

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 identifying differences in underlying design philosophies, which lead to conflicting maxims.

Reuse vs DTSTTCPW

The emergence of OO into the software mainstream was driven by Software reuse, and this lead to a raft of maxims intended to encourage reusability. But reuse flopped. Today it isn't mentioned in polite company, and instead we say things like Do the simplest thing that could possibly work because You ain't gonna need it.

In the 'Reuse' corner:

In the 'DTSTTCPW' corner:

One Ring to Rule Them All...

... one ring to find them one ring to bring them all and in the darkness bind them

What rule(s) underpin whole families of maxims?

Personal tools