Re[3]: Принцип открытости-закрытости
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 31.12.13 08:54
Оценка: 3 (1) +3
Здравствуйте, evgeny.e, Вы писали:

EE>подобные принципы теперь не модны и называются futurecoding-ом (произносить помощив нос), а когда выяснится что приложение не справляется с нагрузкой, а внести изменения уже нельзя не только расширяя но и изменяя — тогда хором петь "нам просто не дали быть достаточно agile" (драматично вскинув руки)


Читая этот наезд, всё же крайне важно понимать, что цели софта меняются постоянно и непредсказуемо. И решение, которое предвиделось по всем параметрам 3 года назад и под которое была заложена максимальная гибкость, может принципиально перестать удовлетворять, потому что стало требоваться совсем другое. Именно поэтому "futurecoding" плох. Морщение носа тут ни при чём.

В реальности оказывается, что не менять поведение в принципе невозможно, и единственное, что остаётся устойчивым — это интерфейс, он же (обычно) API. И то — вариант типа "сегодня 03.08.2008, так вот, с 01.01.2014 мы выкидываем поддержку этого интерфейса" достаточно распространены даже у тех, для кого совместимость долго была принципиальным методом развития. Как в XP и Vista выкинули сначала поддержку DOS mode, а затем — 16-битных Windows программ: снаружи ничего не изменилось, но внутри появилась возможность убрать целые геологические слои древних костылей.

Кстати, ситуация типа

EE> внести изменения уже нельзя не только расширяя но и изменяя


мягко говоря, нереальна. Выкрутиться можно. Но иногда для этого требуется навернуть несколько каскадов промежуточных лесов.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.