principles:rule_of_explicitness
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
principles:rule_of_explicitness [2021-05-19 11:24] – old revision restored (2021-03-30 19:34) 2a04:ac00:4:d29:5054:ff:fe00:d387 | principles:rule_of_explicitness [2021-09-02 12:38] – old revision restored (2021-05-11 22:22) 65.21.179.175 | ||
---|---|---|---|
Line 18: | Line 18: | ||
===== Description ===== | ===== Description ===== | ||
- | Solutions often differ in the level of explicitness. A feature can be implemented explicitly or it can be a side-effect of the implementation of another feature or a more general functionality. The same applies to module communication. A module can invoke another module directly or there can be various forms of indirections like events or observers. | ||
- | RoE states that explicit solutions are better than implicit ones. Indirection, | ||
===== Rationale ===== | ===== Rationale ===== | ||
- | If something is realized explicitly, it is easier to understand. Implicit solutions require the developer to have a deeper understanding of the module as it is necessary to "read between the lines" | ||
===== Strategies ===== | ===== Strategies ===== | ||
Line 91: | Line 88: | ||
* [[Murphy' | * [[Murphy' | ||
* [[Model Principle]] (MP): RoE states that [[anti-patterns: | * [[Model Principle]] (MP): RoE states that [[anti-patterns: | ||
- | * [[Law of Leaky Abstractions]] (LLA): Often abstractions create a level of implicitness. Abstraction leaks are one reason why explicit solutions can be considered preferable. | + | |
==== Principle Collections ==== | ==== Principle Collections ==== | ||
Line 103: | Line 100: | ||
===== Description Status ===== | ===== Description Status ===== | ||
/* Choose one of the following and comment out the rest: */ | /* Choose one of the following and comment out the rest: */ | ||
- | /*[[wiki: | + | [[wiki: |
- | [[wiki: | + | /*[[wiki: |
/ | / | ||
Line 113: | Line 110: | ||
* Tim Peters: // | * Tim Peters: // | ||
- | ===== Discussion ===== | ||
- | |||
- | Discuss this wiki article and the principle on the corresponding [[talk: |
principles/rule_of_explicitness.txt · Last modified: 2021-10-18 22:06 by christian