Без заголовка
Не-не-не, я про другое.
Когда надо "хорошо писать", но выясняется, что для обхода бага "а" в сторонней библиотеке надо всобачить большой воркэраунд, а для поддержки старой конфигурации серверов надо пойти и написать кусок стандартной библиотеки с ifdef'ами или условной сборкой, а для обработки "странной фигни" надо прогнать регэксп над xml перед тем, как его разбирать, то возникает два подхода:
* Ок, это важно и мы будем эти хаки вставлять. Оно отлично работает не смотря на баги софта вокруг. Хотя код выглядит мрачновато.
* Я хочу иметь чистый красивый код. Пусть у нас будет специальная фабрика, которая возвращает классы в зависимости от необходимых багфиксов, но код самой фабрики будет чистый и эстетичный, а фиксы будут вынесены в отдельные файлы с помощью DSL'я.
Баги и кривости вокруг - константа. Остаются два подхода. Вот инженеры выбирают первый - потому что за минимальное количество усилий они получают исправление проблемы. CS/абстрактные программисты выбирают второе, потому что они хотят видеть core проекта, написанным так, чтобы оно вызывало эстетическое чувство красоты.
Вот второй подход по моим наблюдениям разрушителен для проектов. Потому что к моменту написания DSL'я окажется, что один из новообрнаруженных фиксов он не может реализовать, и надо либо его весь передумывать/переписывать, либо всобачивать фикс на живое, причём поверх сложного кода фабрики. Это вызывает фрустрацию и у программиста (желание переписать таки фабрику), и у менеджера проекта (у которого нафиг несдавшуюся фабрику классов переписывают уже третий раз).