Zásady VI. - Kontrakty

  • Jako typ proměnných, atributů, parametrů a návratových hodnot metod se snažíme používat co nejobecnější typy, nejlépe rozhraní. Vzpoměňme přitom na jiné situace v reálném i IT životě - jako standard se uchytily vždy ty jednoduché, nikoli dokonalé věci! I zde vládne Occamova břitva - použijme to stávající, nezavádějme nic, co není nezbytně potřeba.

  • Každá metoda by měla mít dobře definovaný kontrakt - co očekává, co dělá, co vrací. Plus u metod chovajících se podle stavu objektu, i tyto kontextové informace.

  • Programujeme defenzivně a vždy kontrolujeme dodržení kontraktu metody. Nepředpokládejme více, než je nezbytně nutné, kontrolujme dodržení kontraktu ze strany klienta - tzn. např. validujme parametry, vyhazujme běhové výjimky...

  • Zásadou je včasné selhání - "fail early", ihned, jak se přijde na chybu, kvůli níž nelze pokračovat, skutečně nepokračujme. Diagnostika chyb je pak snažší, chyba se lépe lokalizuje a následky lépe řeší.