Здравствуйте, #John, Вы писали:
J>Проекты с DI, дебажить сложно и в них сложно разбираться.
J>Понаписывают рантайм подмену интерфесов, но на практике вообще не встречал что бы в рантайме делали подмену одних сервисов на другие. Подмену можно было сделать напрямую
Я не понимаю, где этот источник невежества? Удивительно, что ты не первый это несёшь. Каким образом DI связанно с интерфейсами? Каким образом DI связан с runtime-подменой? Ведь даже если взять
wiki, там ничего такого нет.
Вот ты лично об этом откуда узал, что для DI нужны интерфейсы или runtime-подмена?
J> в коде без всякого DI.
Как именно?
J>DI однозначно отлично подойдет для приложений где приложение устанавливается к потребителю локально и потребитель сам пишет для себя плагины, исспользуя указанное апи. (вариант: приложение — это веб сервик к которому пишут плагины сторонние люди, отпадает по секурити.)
Так DI или контейнеры?
J>Для сервисной архитектуры, по тестам: нафиг моки. Только усложняют жизнь и вводят в заблуждение. Надо тестировать на реальных данных, тестируя реальный код, а не код с костылями и бинтами. Сгенерил бд с тестовыми данными со скриптов. Прогнал по юнит и интеграционным тестам,
Такие тесты как правило трудно-подъёмные, медленные и плохо локализуют ошибку. Но такие тесты тоже нужны.
И вообще, юнит-тесты это больше инструмент разработки, а не контроля качества.
J>почитал логи — увидел что апи соответствует спеки и норм.
Что ещё за логи??
У правильного теста два состояния: pass/fail.