May 11th, 2006

(no subject)

Проработав уже полгода работы в команде, "следующей" RUP (Rational Unified Process), понял очень интересную фишку.

Вся эта дрянь в виде абстрактных провайдеров фабрик интерфейсов приводит к тому, что везде вся документация (точнее UML-модель) оперирует базовыми интерфейсами, напичканными такими многозначительными функциями, как: open_enitity, load_object, make, _d, _n (я не шучу, это правда!).

А работа с ними выглядит так: забираем какой-то IObject, потом его приводим специальным dynamic_cast-ом к тому, что нужно и с этим работаем. Потому что все равно ничего другого оттуда приехать не может. Однако, когда предлагаешь сделать интерфейс более конкретным, тебе говорят: "ну мы же там можем хранить НЕЧТО".
Бля! Пользователь будет сохранять нечто! Ага, уже. Сохранил.

Вообщем получается все вдвойне неприятно: высокий полет абстрактных идей + разваливающаяся под руками реализация, которой можно воспользоваться только обладая тайными знаниями.