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-01-15 17:31] – stubs christianwiki:wish_list [2013-10-06 17:57] – clean code 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)
wiki/wish_list.txt · Last modified: 2013-10-23 22:48 by christian