User Tools

Site Tools


start

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
Next revisionBoth sides next revision
start [2013-02-18 11:39] – idea... christianstart [2016-07-10 20:40] – [Principles and Principle Languages] christian
Line 1: Line 1:
 ====== Principles Wiki ====== ====== Principles Wiki ======
  
-===== The Idea =====+===== About this Wiki =====
  
-The purpose of this wiki is to collect software development principlesJust like common solution schemes to recurring problems are documented using patternscommon assessment rules telling good solutions from bad ones can be described using principles. So principles are another form of experience reuse. There are dozens and maybe hundreds of such principles, some of which are described, examined, discussed, and interconnected in this wiki.+This wiki is a place to collect, examine, and discuss software design knowledge in a systematic wayCurrently there is a strong focus on (object-oriented) design principles ([[collections:SOLID]][[collections:GRASP]], [[principles:Don't Repeat Yourself|DRY]], [[principles:Keep It Simple Stupid|KISS]], ...). In the future other forms of [[about:experience reuse]], like patterns and anti-patternswill also be explored and interconnected with the principles.
  
-The following pages describe the idea in more detail: 
-  * [[about:Principles]] 
-  * [[about:Principle Languages]] 
-  * [[about:Benefits]] 
-  * [[about:Using Principles in the Plan-Driven World]] 
-  * [[about:Using Principles in the Agile World]] 
-  * [[about:Describing Principles]] 
  
 +===== Principles and Principle Languages =====
  
-===== Principles =====+Just like common solution schemes to recurring problems are documented using [[glossary:patterns]], common assessment rules telling good solutions from bad ones can be described using [[glossary:principles]]. So principles are another form of experience reuse. There are dozens and maybe hundreds of such principles, some of which are examined here.
  
-This wiki is about [[glossary:principles]]. You may have a look at the [[principles:|full list]] or start with one of the following: +[[collections:ood_principle_language|{{ :collections:ood_principle_language.png?nolink&100|}}]]
-  * [[principles:Keep It Simple Stupid]] +
-  * [[principles:Generalization Principle]] +
-  * [[principles:Model Principle]] +
-  * [[principles:Information Hiding/Encapsulation]] +
-  * [[principles:Low Coupling]] +
-  * [[principles:High Cohesion]] +
-  * [[principles:Don't Repeat Yourself]] +
-  * [[principles:Easy to Use and Hard to Misuse]] +
-  * [[principles:|...]]+
  
 +[[glossary:Principle languages]] similarly to [[glossary:pattern languages]] interconnect principles such that the consideration of one principle inevitably leads to other principles which are likely to be relevant in the same context. Currently there is one principle language described here ([[collections:OOD Principle Language]]) and others will follow in the future.
  
-===== Principle Collections and Principle Languages =====+([[about:|more...]])
  
-Several related principles are grouped into [[glossary:principle collections]] some of which form [[glossary:principle languages]]: 
-  * [[collections:OOD Principle Language]] 
  
-  * [[collections:SOLID]], [[collections:GRASP|GRASP]], [[collections:|...]]+===== Start =====
  
 +Start exploring the wiki with the [[principles:|full list of principles]], the [[collections:OOD Principle Language]] or the [[collections:|list of (principle) collections]]. This wiki is organized in several namespaces. One for each kind of [[about:experience reuse]] (principles, patterns, anti-patterns, ...) plus some organizational ones.  Get an overview of the different kinds of content in the wiki page about [[about:experience reuse]] or the [[?do=index|sitemap]]. 
  
-===== Contexts =====+[[wiki:contribute|Contributions]] to the wiki are welcome. Registration is not required (but appreciated). Almost all namespaces are world-editable. It's an open wiki so you are encouraged to share your knowledge.
  
-Each principle belongs to one or more [[contexts:]]: 
- 
-  * [[contexts:Object-Oriented Design]] 
- 
- 
-===== About the Wiki itself ===== 
- 
-This [[wiki:]] uses the [[wiki:dokuwiki|DokuWiki]] software. For information on how the wiki markup (some variation of markdown) works, see the [[wiki:syntax]] page. The [[wiki:wish list]] lists principles that have not been described yet in this wiki. 
- 
-Some terms shall be used consistently throughout the wiki. The [[glossary:]] lists and defines them:[[glossary:Principle]], [[glossary:principle language]], [[glossary:module]], [[glossary:|...]] 
start.txt · Last modified: 2018-06-24 10:59 by christian