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

Сообщение Re[5]: О пользе Dependency Injection фреймворков от 20.01.2021 6:00

Изменено 20.01.2021 6:08 takTak

Re[5]: О пользе Dependency Injection фреймворков
T>>система при DI делится на кучу заменямых компонентов, так что сделанные изменения проще тестировать,
T>>если все прошлые изменения покрыты тестами (а когда есть DI, это сделать в разы проще), то прогонка этих же регрессионных тестов может указать на явные ошибки, когда ни тестов ни нет, то поддержка по становится чем-то вроде ходьбы по канату на высоте 100 метров без страховки
T>>применимо это к так называемым оо — системам, при фунциональщине тесты базируются на иной парадигме, там композиция делается по-другому

TG>Понял. Спасибо. Вопрос: в описываемом случае с легаси ограничитесь извлечением интерфейсов или еще и DI-контейнер используете?


в этой ветке я уже в другом месте писал, что для новых проектов смысла в DI без IoC контейнера не вижу: слишком много приходится делать тогда своими ручками, сo старым же проектом трудно оценить, насколько безопасно и оправданно его переписать так, чтобы можно было бы покрыть критические части, которые будут изменяться, юнит или ещё какими тестами

вообще, из этого топика я понял, что есть .ева куча народа, которая пользуется DI лишь для композиции приложения на разные куски, совершенно не задумываясь такими вещами, как тестирование, имхо тогда смысла в DI просто нет: тогда , действительно, возникает сложно собранная гибкая система, гибкость которой ни в каких тестах не используется, а в других местах гибкость редко имеет смысл, ну тут приводили какие-то плагины: ну там это требование на уровне используемого фреймворка, ну такое...
Re[5]: О пользе Dependency Injection фреймворков
T>>система при DI делится на кучу заменямых компонентов, так что сделанные изменения проще тестировать,
T>>если все прошлые изменения покрыты тестами (а когда есть DI, это сделать в разы проще), то прогонка этих же регрессионных тестов может указать на явные ошибки, когда ни тестов ни нет, то поддержка по становится чем-то вроде ходьбы по канату на высоте 100 метров без страховки
T>>применимо это к так называемым оо — системам, при фунциональщине тесты базируются на иной парадигме, там композиция делается по-другому

TG>Понял. Спасибо. Вопрос: в описываемом случае с легаси ограничитесь извлечением интерфейсов или еще и DI-контейнер используете?


в этой ветке я уже в другом месте писал, что для новых проектов смысла в DI без IoC контейнера не вижу: слишком много приходится делать тогда своими ручками, сo старым же проектом трудно оценить, насколько безопасно и оправданно его переписать так, чтобы можно было бы покрыть критические части, которые будут изменяться, юнит или ещё какими тестами

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

если же ты начинаешь писать тесты, то тогда польза от использования IoC container сразу налицо: все архитектурные промахи (а для меня они заключаются в том, что невозможно или крайне трудно написать изолированные юнит-тесты ) сразу же явно проступают, но какое-то время на изучение того, что такое IoC container и с чем его есть уходит, я бы тут порекомендовал почитать какую-нибудь книжку под заданный язык o DI и книжку про тестирование, чтобы было понятно, к чему надо стремиться