Asgard писал(а): ↑25.09.2005 04:41Вы когда-нибудь пробовали писать немаленький проект, решая проблемы по мере их поступления? Обычно получается вполне работающая программа, но
1) не расширяемая
2) кривая и трудноразбираеая
3) не структурированная
Т.о. проектирование не является панацеей от ошибок и от безмозглости(если программист туп, то тут ничто не поможет), это позволяет избавится от трёх вышеуказанных ляпов, а также получить некоторые дополнительные немаловажные плюсы.
На самом деле программы с подобными качествами появляются и по другим причинам. Если программа медленно росла и писалась большим сообществом (например кросс-средства GNU), то такой проект сдерживает язык, с которого все началось. И получается, что программа вроде "доросла" до ++, в ней есть даже множественное наследование и полиморфизм на С, но переводить ее на ++ никто не собирается. Потому что слишком долго, да и не разобраться уже в этом коде (конкретно я сейчас разбираю libbfd и плююсь). Мало программ было переведено на ++, однако такие были (например squid).