User Tools

Site Tools


principles:rule_of_explicitness

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
principles:rule_of_explicitness [2017-01-09 20:43] – [Strategies] Added a mention of not importing entire namespaces for C++ 148.80.254.2principles:rule_of_explicitness [2021-10-18 22:06] (current) – +++ restored +++ christian
Line 84: Line 84:
   * [[Generalization Principle]] (GP): RoE often results in specific solutions. Generality often requires stating something implicitly.   * [[Generalization Principle]] (GP): RoE often results in specific solutions. Generality often requires stating something implicitly.
   * [[Low Coupling]] (LC): Direct communication typically has the disadvantage of a higher coupling. Indirection reduces coupling but creates implicit/indirect communication paths.    * [[Low Coupling]] (LC): Direct communication typically has the disadvantage of a higher coupling. Indirection reduces coupling but creates implicit/indirect communication paths. 
- +  * [[Don't Repeat Yourself]] (DRY): Following RoE sometimes leads to duplication.
 ==== Complementary Principles ==== ==== Complementary Principles ====
  
   * [[Keep It Simple Stupid]] (KISS): Explicit solutions are often also simpler.   * [[Keep It Simple Stupid]] (KISS): Explicit solutions are often also simpler.
-  * [[Murphy's Law]] (ML):The typical reason for RoE is to avoid unnecessarily complicated solutions and possibilities for defects. Don'loose that goal out of sight.+  * [[Murphy's Law]] (ML):The typical reason for RoE is to avoid unnecessarily complicated solutions and possibilities for defects. Don'lose sight of that goal.
   * [[Model Principle]] (MP): RoE states that [[anti-patterns:primitive obsession]] shall be avoided. Instead more specific types should be used in parameter lists. MP makes this even clearer: In object-orientation objects instead of plain integers or strings are used.   * [[Model Principle]] (MP): RoE states that [[anti-patterns:primitive obsession]] shall be avoided. Instead more specific types should be used in parameter lists. MP makes this even clearer: In object-orientation objects instead of plain integers or strings are used.
   * [[Law of Leaky Abstractions]] (LLA): Often abstractions create a level of implicitness. Abstraction leaks are one reason why explicit solutions can be considered preferable.   * [[Law of Leaky Abstractions]] (LLA): Often abstractions create a level of implicitness. Abstraction leaks are one reason why explicit solutions can be considered preferable.
Line 116: Line 115:
  
 Discuss this wiki article and the principle on the corresponding [[talk:principles:Rule of Explicitness|talk page]]. Discuss this wiki article and the principle on the corresponding [[talk:principles:Rule of Explicitness|talk page]].
 +
principles/rule_of_explicitness.1483991027.txt.gz · Last modified: 2017-01-09 20:43 by 148.80.254.2