November 2017
Intermediate to advanced
670 pages
17h 35m
English
This is what a method contract looks like in the OOP world:

Our method m is passed an a, does some processing and returns b. An exception can occur, which may or may not be caught and handled and errors can be returned. Additionally, in order for the method to properly satisfy its contract, it's up to us to read the documentation (which of course will always be completely accurate and up-to-date.... not!) in hopes that we cover all the preconditions, invariant, and postconditions.
An invariant is something that must be always be true for the life of the method. For example, if our class has a duration member variable, ...