Здравствуйте, Mamut, Вы писали:
M>Спасибо. Это все равно возвращает к изначальным:
M>- кто и как будет проверять, правильно ли реализована логика в этих типах
M>- не впихивать же 40 условий, половина из которых зависит от конфигураций, в эти инициализаторы
1. так же как и раньше, просто некоторая часть ошибок найдется компилятором, а не тестером. те этот механизм ничего конечно не гарантирует, кроме того, что какой-то процент ошибок найдется раньше. так же см пункт 2.
2. ну вот поэтому я и не любитель таких методик, практика показывает, что гораздо быстрее найдется вылетевший NPE, чем ты озверев впихнешь всю бизнес-логику в систему типов. БОлее того, если уж ошибка проскочит компилятор, то найти ее будет сложнее, чем банальный NPE в примере с билдером.
Но принципиально такая возможность существует. Может быть можно даже извернуться и придумать дсл позволяющий реализовывать такие штуки гораздо менее многословно.
PS. немного подумав. и все-таки, для некоторых вещей такие техники вполне имеют смысл, например для каких-то базовых сущностей системы. Например, ордер в торговой системе инварианты которого проверяются компилятором это скорее добро, чем зло, учитывая, что модифицируется он крайне редко и можно потратить силы на систему типов один раз.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>