Допустим, программисту нужно реализовать... скажем, приготовление чая.

За вполне разумное время он создает устройство, способное разливать 242 миллилитра зеленого жасминового чая в коричневые керамические чашки.

Реализовав методом копипастнига устройство, разливающее 238 миллилитров черного чая с сахаром в стеклянные чашки, и устройство, разливающее 304 миллилитра черного чая с клубникой в гжельские, программист понимает, что нужно генерализовать решение. Он пишет спецификацию и устремляется в бой.

Через полгода напряженной работы выясняется, что из восьми реализаций (необходимого для дальнейшего прогресса) модуля, превращающего воду в вино, пять так и остались на уровне спецификаций, два выдают подкрашенную воду, а один вроде как работал, но код найти не удается, а автор уже больше тысячи лет не отвечает на почту, проект встает, программист в отчаянии опускает руки и пытается копипастингом приспособить свое устройство под изготовление куриного бульона из кубиков.

Это я к чему? Да просто так, к тому, что излишнаяя генерализация ничем не лучше излишней специализации. Меру надо знать в проектировании...

Комментарии
25.08.2007 в 23:57

Нет свободы для врагов свободы!
Метко :) Это не только программирования касается.
26.08.2007 в 01:00

ΔX/ΔT
это был джава программист!!!!
26.08.2007 в 01:42

Нет свободы для врагов свободы!
Джава-программист? Это что-то из Звёздных Войн... :)

Расширенная форма

Редактировать

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail