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