Zur Benutzung des Codes (einer Klasse/Methode) soll Kenntnis der Schnittstelle ausreichen.
Diese muß den Kontrakt dokumentieren.
wesentlicher Teil des Kontraktes ist der Typ (Anzahl und Typen von Argumenten und Resultat)
man kann aber nicht alles (*) durch statische Typen ausdrücken, deswegen Beschreibung hinzufügen
(*) aber doch sehr viel. Wenn nicht, liegt das evtl. an: primitive obsession, Datenklumpen, lange Parameterliste