Правила валидации входящих данных часто принимают за контракты в коде (как, собственно, и наоборот). Давайте разберемся в чем отличие между этими двумя понятиями и в каких случаях они применимы. [Читать дальше →][1]
[1]:
http://habrahabr.ru/post/264113/#habracut