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
wiki:wish_list [2013-01-15 17:31] – stubs christianwiki:wish_list [2013-10-23 22:48] (current) – [Places Where Further Principles May Hide] christian
Line 17: Line 17:
 ===== Further Principles ===== ===== Further Principles =====
  
-  * [[principles:Don't Write Code To Find Code]] (origin unknown) +  * [[principles:Don't Write Code To Find Code]] -- origin unknown 
-  * [[principles:Minimize Intellectual Distance]] (generalization of [[principles:Model Principle|MP]]; see also Davis: "201 Principles of Software Development")+  * [[principles:Minimize Intellectual Distance]] -- generalization of [[principles:Model Principle|MP]]; see also Davis: "201 Principles of Software Development" 
 +  * [[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]] 
 +  * 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 31: 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 40: 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) 
 +    * Stepdown Rule (p. 136)
wiki/wish_list.1358267509.txt.gz · Last modified: 2013-05-19 22:10 (external edit)