Software Development, Software Engineering, Software Architecture, Software Design, Clean Code.
with larger inheritance hierarchies. 9. The principle of least astonishment or least surprise — Suggests that a system should behave in a way that is least surprising or confusing to its users (i.e., it should act as most users expect). For example, if you have a user account service, updating user