бюрократия и правосознание
16-09-2008 02:10
к комментариям - к полной версии
- понравилось!
Рабочее. Взял пофискить ерундовый баг: некая операция (назовем ее для краткости "Ы") выполняется неправильно. По ходу выяснилось, что операция неправильно выполняется двумя разными неправильными способами в двух разных модулях (назовем их "мУ", "мЮ"). Однако операция не то чтобы уникальная, а скорее однотипная - в программе есть, скажем, десять тысяч мест, где выполняется операция Ы, конечно, с различными параметрами. Из них семь тысяч раз - через вспомогательный модуль "бЯ", и три тысячи - через вспомогательный модуль "бЕ". Оба способа - и "бЯ" и "бЕ" - кривые по той причине, что реализация "бЯ" не может быть вызвана из "мУ", а реализация "бЕ" - из "мЮ". Хоть плачь.
Варианты развития событий:
в1: Пофиксить баг раздельно в мУ и мЮ, продублировав свой фикс два раза. Через полгода очередной программист будет исправлять очередной баг в операции "Ы", он напишет в своем ЖЖ ровно такой же пост и помянет меня нехорошим словом.
в2: Написать новый вспомогательный модуль бШ, который можно будет вызывать хоть из мУ, хоть из мЮ, хоть откуда - и пофиксить через него. Итого в программе будет уже три вспомогательных модуля (бЯ, бЕ, бШ), которые делают одно и то же. Через полгода очередной программист добавит четвертый модуль, потом пятый, и постепенно вся программа будет состоять из однотипных вспомогательных модулей - алфавита не хватит.
в3: Написать модуль бШ, и переделать десять тысяч вызовов бЯ, бЕ на вызов бШ. Через полгода ничего страшного не произойдет, но исправление бага вместо двух часов займет три дня, а программист, который будет делать code review (обзор доработок в коде) однозначно повесится.
Как говорилось выше - хоть плачь.
вверх^
к полной версии
понравилось!
в evernote