6 Don’t surprise your users
This chapter covers
- The Principle of Least Astonishment and not surprising your users
- Preventing surprisingly poor runtime performance
- Careful coding with C++ vectors to avoid performance problems
- Applying Programming by Contract to a class and its member functions
We all love surprise parties but being surprised by the results of a function call is a definite sign of poor design. Well-designed software should not contain any surprises that can cause runtime logic errors or poor performance.
Ideally, when we design a class, its objects will behave and perform just as its users expect. A user can be another programmer who uses the class, or an end user who interacts with the application. Unexpected behavior can cause runtime logic errors or applications that don’t perform well.