diff options
author | Dave Kerr <dwmkerr@gmail.com> | 2023-03-10 11:06:50 +0800 |
---|---|---|
committer | Dave Kerr <dwmkerr@gmail.com> | 2023-03-10 11:06:50 +0800 |
commit | e4662cbc27d04fb968220837633034420b7fb11a (patch) | |
tree | b0d568b10e64c653fe293e52d50167f01a188903 | |
parent | 80bea4040f476e348f680fd01ec43798ce3f00ac (diff) |
feat: principle of least astonishment
-rw-r--r-- | README.md | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -71,6 +71,7 @@ Like this project? Please considering [sponsoring me](https://github.com/sponsor * [The KISS principle](#the-kiss-principle) * [YAGNI](#yagni) * [The Fallacies of Distributed Computing](#the-fallacies-of-distributed-computing) + * [The Principle of Least Astonishment](#the-principle-of-least-astonishment) * [Reading List](#reading-list) * [Online Resources](#online-resources) * [PDF eBook](#pdf-ebook) @@ -844,7 +845,6 @@ See Also: - [Hyrum's Law](#hyrums-law-the-law-of-implicit-interfaces) - ### SOLID This is an acronym, which refers to: @@ -1018,6 +1018,22 @@ See also: - [Foraging for the Fallacies of Distributed Computing (Part 1) - Vaidehi Joshi on Medium](https://medium.com/baseds/foraging-for-the-fallacies-of-distributed-computing-part-1-1b35c3b85b53) +### The Principle of Least Astonishment + +[The Principle of Least Astonishment on Wikipedia](https://en.wikipedia.org/wiki/Principle_of_least_astonishment) + +> People are part of the system. The design should match the user's experience, expectations, and mental models. +> +> Frans Kaashoek + +This principle proposes that systems and interfaces should be designed in a way that features and functionality is intuitive and matches users expectations. Features that 'surprise' users should be discouraged, and features that can be intuitively reasoned about based on existing common patterns and practices should be encouraged. + +Examples are common in user interfaces, where a number of paradigms are common, such as a 'pull down' on a mobile app page to reload. Another example would be command line tools - where standard Unix and Linux tools have created a set of common expectations on how CLI tools can be expected to work, such as how command line flags are named. + +See also: + +- [Convention Over Configuration](#todo) + ## Reading List If you have found these concepts interesting, you may enjoy the following books. |