вторник, 2 ноября 2010 г.

Bad & good copy-and-paste

Рано или поздно встает вопрос: скопировать ли существующий кусок кода в какой-нибудь новый обработчик либо оформить его в виде функции. Как правило, все учебники учат, что дублирование кода - это плохо (think DRY), поэтому надо делать новую функцию. С другой стороны, если общая (на данный момент времени) функциональность вдруг перестанет быть таковой в будущем, то это породит leaky abstraction (think костыль), что, пожалуй, даже хуже чем дублирование.
Поскольку предвиденье - это искусство, то оформлять новую функцию, предвидя сближение функциональности, либо просто скопировать кусок, предвидя расхождение функциональности, является талантом, опытом и даром свыше вместе одновременно.
В общем, хорош копипаст или нет, становится понятно только постфактум.

Комментариев нет: