User Tools

Site Tools


principles:easy_to_use_and_hard_to_misuse

Differences

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

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
principles:easy_to_use_and_hard_to_misuse [2013-01-15 15:37] – created christianprinciples:easy_to_use_and_hard_to_misuse [2021-10-13 08:19] – old revision restored (2021-09-02 12:26) 194.209.25.108
Line 37: Line 37:
 ==== Generalizations ==== ==== Generalizations ====
  
-  * [[principles:Murphy's Law]]+  * [[Murphy's Law]] (ML):  Because of ML an interface should be crafted so it is easy to use and hard to misuse. EUHM is the application of ML to interfaces.
  
 ==== Specializations ==== ==== Specializations ====
  
-  * [[principles:Principle of Least Surprise]]+  * [[Principle of Least Surprise]] (PLS): 
  
 ==== Contrary Principles ==== ==== Contrary Principles ====
 +
 +  * [[Keep It Simple Stupid]] (KISS): Both principles, KISS and EUHM, are about simplicity. But while EUHM is about the simplicity of an interface, KISS is rather concerned with simplicity of the implementation. KISS is contrary in those cases where the solution which is easier to implement is not so easy to use or imposes further possibilities for misuse.
  
 ==== Complementary Principles ==== ==== Complementary Principles ====
  
-  * [[principles:Model Principle]] +  * [[Model Principle]] 
-  * [[principles:Uniformity Principle]] +  * [[Uniformity Principle]] 
-  * [[principles:Fail Fast]]+  * [[Fail Fast]] (FF):  
 +  * [[Invariant Avoidance Principle]] (IAP): One reason for a possible misuse of a module is an invariant. For example there might be a method which takes a list and an index where the index has to be within the bounds of the list. Each of these invariants imposes further possibilities for misuse of the module. So it is better to avoid them.
  
 ==== Principle Collections ==== ==== Principle Collections ====
Line 67: Line 70:
  
   * [[http://programmer.97things.oreilly.com/wiki/index.php/Make_Interfaces_Easy_to_Use_Correctly_and_Hard_to_Use_Incorrectly|97things: Make Interfaces Easy to Use Correctly and Hard to Use Incorrectly]]   * [[http://programmer.97things.oreilly.com/wiki/index.php/Make_Interfaces_Easy_to_Use_Correctly_and_Hard_to_Use_Incorrectly|97things: Make Interfaces Easy to Use Correctly and Hard to Use Incorrectly]]
 +  * [[http://ozlabs.org/~rusty/index.cgi/tech/2008-03-30.html|How Do I Make This Hard to Misuse?]]
principles/easy_to_use_and_hard_to_misuse.txt · Last modified: 2021-10-18 21:29 by christian