Я уверен, что где-то есть название для этого анти-паттерна; однако я не достаточно знаком с литературой по анти-шаблонам, чтобы знать это.
Рассмотрим следующий сценарий:
or0
является функцией-членом в классе Что бы там ни было, это сильно зависит от переменных членов класса. Программист А приходит и нуждается в функциональности, такой как, or0
но не вызов or0
, Программист А копирует и переименовывает весь класс. Я предполагаю, что она не звонит, or0
потому что, как я говорю, она сильно зависит от переменных-членов для ее функциональности. Или, может быть, она младший программист и не знает, как это вызвать из другого кода. Так что теперь у нас есть or0
и c0
(с для копирования). Я не могу полностью обвинить Программиста А в этом подходе - мы все попали в сжатые сроки и взломали код, чтобы выполнить работу.
Несколько программистов поддерживают, or0
так что теперь это версия orN
. c0
сейчас версия cN
. К сожалению, большинство программистов, которые поддерживали содержание класса, or0
казалось, совершенно не знают c0
- что является одним из самых сильных аргументов, которые я могу придумать для мудрости принципа СУХОЙ. И, возможно, также было независимое ведение кода в c
. В любом случае кажется, что or0
и c0
были поддержаны независимо друг от друга. И, радость и счастье, ошибка происходит в cN
том, что не происходит в orN
.
Итак, у меня есть несколько вопросов:
1.) Есть ли название для этого анти-паттерна? Я видел, как это происходит так часто, что мне трудно поверить, что это не названный анти-паттерн.
2.) Я вижу несколько альтернатив:
a.) Исправлена ошибка, orN
при которой принимался параметр, определяющий значения всех необходимых ему переменных-членов. Затем измените cN
вызов так, чтобы orN
все необходимые параметры были переданы.
б.) Попробуйте вручную перенести исправления из orN
в cN
. (Имейте в виду, я не хочу этого делать, но это реалистичная возможность.)
c.) Переписать, orN
чтобы - cN
снова, чёрт, но я перечислю это для полноты картины.
г.) Попытайтесь выяснить, где cN
сломан, а затем отремонтировать его независимо от orN
.
Альтернатива кажется лучшим исправлением в долгосрочной перспективе , но я сомневаюсь , что клиент позволит мне реализовать. Никогда не время и деньги, чтобы исправить все правильно, но всегда время и деньги, чтобы решить ту же проблему 40 или 50 раз, верно?
Кто-нибудь может предложить другие подходы, которые я, возможно, не рассмотрел?