User Tools

Site Tools


wiki:wish_list

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
wiki:wish_list [2013-02-10 17:44] – [Further Principles] christianwiki:wish_list [2013-10-06 17:57] – clean code christian
Line 21: Line 21:
   * [[principles:You Ain't Gonna Need It]] (YAGNI) -- see [[principles:Keep It Simple Stupid|KISS]]   * [[principles:You Ain't Gonna Need It]] (YAGNI) -- see [[principles:Keep It Simple Stupid|KISS]]
   * [[principles:Once And Only Once]] (OAOO) -- see [[principles:Don't Repeat Yourself|DRY]]   * [[principles:Once And Only Once]] (OAOO) -- see [[principles:Don't Repeat Yourself|DRY]]
 +  * http://en.wikipedia.org/wiki/Composition_over_inheritance
 +  * Fowler's First Law of Distributed Object Design (see "Patterns of Enterprise Pattlication Architecture p. 89")
 +  * Form follows function
  
-===== Places Where Further Principles May Hide =====+==== Places Where Further Principles May Hide =====
  
   * [[http://c2.com/cgi/wiki|Portland Pattern Repository]]   * [[http://c2.com/cgi/wiki|Portland Pattern Repository]]
     * [[principles:Don't Create Verb Classes]]     * [[principles:Don't Create Verb Classes]]
-    * [[principles:Don't Name Classes Object Manager Handler Or Data]]+    * [[principles:Don't Name Classes Object Manager Handler Or Data]] (see also Clean Code p. 25)
     * [[principles:Behavioral Completeness]] http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign     * [[principles:Behavioral Completeness]] http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign
     * [[principles:Principle of Essential Representation]] http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign     * [[principles:Principle of Essential Representation]] http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign
Line 32: Line 35:
   * Unix Philosophy   * Unix Philosophy
     * http://en.wikipedia.org/wiki/Unix_philosophy     * http://en.wikipedia.org/wiki/Unix_philosophy
 +    * http://www.catb.org/~esr/writings/taoup/html/ch01s06.html
   * Joshua Bloch: [[http://www.infoq.com/presentations/effective-api-design|How to Design a Good API & Why it Matters]]   * Joshua Bloch: [[http://www.infoq.com/presentations/effective-api-design|How to Design a Good API & Why it Matters]]
     * alternative version of the talk: http://www.youtube.com/watch?v=aAb7hSCtvGw     * alternative version of the talk: http://www.youtube.com/watch?v=aAb7hSCtvGw
Line 41: Line 45:
     * http://programmer.97things.oreilly.com/wiki/index.php/Contributions_Appearing_in_the_Book     * http://programmer.97things.oreilly.com/wiki/index.php/Contributions_Appearing_in_the_Book
     * http://programmer.97things.oreilly.com/wiki/index.php/Other_Edited_Contributions     * http://programmer.97things.oreilly.com/wiki/index.php/Other_Edited_Contributions
 +  * [[http://www.python.org/dev/peps/pep-0020/|The Zen of Python]] 
 +  * Clean Code 
 +    * LeBlanc's Law: Later equals never 
 +    * Blocks should be one line long (p. 35) 
 +    * Functtion names should not be just a restatement of the function implementation (p. 36)
wiki/wish_list.txt · Last modified: 2013-10-23 22:48 by christian