Информация об изменениях

Сообщение Re[9]: О пользе Dependency Injection от 15.01.2021 22:35

Изменено 16.01.2021 2:19 Министр Промышленности

Re[9]: О пользе Dependency Injection
МП>>я имел в виду банальную задачу:
МП>>есть фарш исторического кода, который неправильно работает
МП>>ты разбираешься в какой момент всё идёт неправильно, отслеживаешь объекты где используются, откуда получаются
МП>>и вот на 7м-13м уровне вложенности вызывов ты понимаешь, тебе надо срочно знать откуда берётся значение вот в этом объекте
МП>>прыг F12 (у меня это решарперовский GoToDefinition)
МП>>ага есть конструктор прыг Alt+F7 (у меня это FindUsages) а хрен тебе — он вызывается неявно в рамках DI
МП>>и хорошо если ты это ещё знаешь
МП>>а то вполне можешь подумать "ага, значит инициализируется не здесь", и пойти исследовать фарш дальше вглубь!
МП>>и это убийственно

Y>ОК. Но при чём тут автоматический рефакторинг?


например, ввиду вышеизложенного, ты не можешь зачистить члены класса, которые вроде бы не используются
потому что на самом деле они используются через DI-фреймворк

и таким образом начинаешь стрематься на каждом шагу, который иначе бы сделал "в потоке"
Re[9]: О пользе Dependency Injection
МП>>я имел в виду банальную задачу:
МП>>есть фарш исторического кода, который неправильно работает
МП>>ты разбираешься в какой момент всё идёт неправильно, отслеживаешь объекты где используются, откуда получаются
МП>>и вот на 7м-13м уровне вложенности вызывов ты понимаешь, тебе надо срочно знать откуда берётся значение вот в этом объекте
МП>>прыг F12 (у меня это решарперовский GoToDefinition)
МП>>ага есть конструктор прыг Alt+F7 (у меня это FindUsages) а хрен тебе — он вызывается неявно в рамках DI
МП>>и хорошо если ты это ещё знаешь
МП>>а то вполне можешь подумать "ага, значит инициализируется не здесь", и пойти исследовать фарш дальше вглубь!
МП>>и это убийственно

Y>ОК. Но при чём тут автоматический рефакторинг?


например, ввиду вышеизложенного, ты не можешь зачистить члены класса, которые вроде бы не используются
потому что на самом деле они могут использоваться через DI-фреймворк

и таким образом начинаешь стрематься на каждом шагу, который иначе бы сделал "в потоке"