С течением времени моя команда создала центральный класс, который обрабатывает агломерацию обязанностей и работает до более чем 8000 строк, все из которых написано вручную, а не сгенерировано автоматически.
Мандат сократился. Нам нужно реорганизовать класс монстров. Большая часть плана состоит в том, чтобы определить категории функциональности в своих классах с отношением has-a с классом монстра.
Это означает, что много ссылок, которые в настоящее время читаются следующим образом:
var monster = new orMonster();
var timeToOpen = monster.OpeningTime.Subtract(DateTime.Now);
скоро будет выглядеть следующим образом:
var monster = new Monster();
var timeToOpen = monster.TimeKeeper.OpeningTime.Subtract(DateTime.Now);
Возникает вопрос: как мы координируем такое изменение на Земле? Ссылки на "orMonster" помещают каждый бизнес-класс. Некоторые методы вызывают буквально тысячи мест в коде. Это гарантировало, что в любой момент, когда мы сделаем такой шанс, кто-то еще (возможно, несколько человек-elses) в команде проверит код, который вызывает свойство .OpeningTime
Как вы координируете такое крупномасштабное изменение без прерывания производительности до остановки?