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-11 16:06] – Taxomania Rule christianwiki:wish_list [2013-10-23 22:48] (current) – [Places Where Further Principles May Hide] christian
Line 1: Line 1:
 ====== Wish List ====== ====== Wish List ======
 +
 +===== Stubs =====
 +
 +:!: There are still many principle descriptions that are only stubs, which means major parts are missing: [[wiki:stub?do=backlink|List of Stubs]]
 +
  
 ===== Incomplete Principle Collections ===== ===== Incomplete Principle Collections =====
Line 6: Line 11:
   * [[collections:Robert C. Martin's Principle Collection]]   * [[collections:Robert C. Martin's Principle Collection]]
   * [[collections:Unix Philosophy (Eric S. Raymond)]]   * [[collections:Unix Philosophy (Eric S. Raymond)]]
-===== Places Where Further Principles May Hide =====+  * [[collections:Principles in "Object-Oriented Software Construction"]] 
 +  * [[collections:Principles in "The Pragmatic Programmer"]] 
 + 
 + 
 +===== Further Principles ===== 
 + 
 +  * [[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: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 =====
  
-  * Bertrand Meyer: //[[http://en.wikipedia.org/wiki/Object-Oriented_Software_Construction|Object-Oriented Software Construction]]// 
-    * [[principles:Single Choice Principle]] 
-    * [[principles:Linguistic Modular Units]] 
-    * [[principles:Few Interfaces]] 
-    * [[principles:Small Interfaces]] 
-    * [[principles:Self-Documentation Principle]] 
-    * [[principles:Uniform Access Principle]] 
-    * [[principles:Command-Query Separation]] see also:  http://martinfowler.com/bliki/CommandQuerySeparation.html 
-    * [[principles:Symbolic Constant Principle]] 
-    * [[principles:Taxomania Rule]] 
-    * ... 
-    * :!: Create a principle collection for the principles in this book :!: 
-  * Andrew Hunt and David Thomas: //[[http://pragprog.com/the-pragmatic-programmer/extracts/tips|The Pragmatic Programmer]]// 
-    * [[principles:Program Close To The Problem Domain]] 
-    * [[principles:Crash Early]] 
-    * [[principles:Configure, Don't Integrate]] 
-    * [[principles:Put Abstractions In Code, Details In Metadata]] 
-    * [[principles:Separate Views From Models]] 
-    * [[principles:Eliminate Effects Between Unrelated Things]] (Orthogonality) 
-    * ... 
-    * :!: Create a principle collection for the principles in this book :!: 
   * [[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 37: Line 35:
   * Unix Philosophy   * Unix Philosophy
     * http://en.wikipedia.org/wiki/Unix_philosophy     * http://en.wikipedia.org/wiki/Unix_philosophy
-    * :!: Create one or---maybe better---several principle collections :!:+    * 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 47: 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]] 
-===== Further Principles ===== +  * Clean Code 
- +    * LeBlanc's LawLater equals never 
-  * [[principles:Don't Write Code To Find Code]] (origin unknown) +    * Blocks should be one line long (p. 35
-  * [[principles:Encapsulate The concept That varies]] (See GoF book+    * Functtion names should not be just a restatement of the function implementation (p. 36) 
 +    * Stepdown Rule (p. 136)
wiki/wish_list.1357916786.txt.gz · Last modified: 2013-05-19 22:10 (external edit)