Я нахожу это бесполезным и дополнительной работой для использования инъекции зависимостей, в то время как вы не следуете строгому указанию TDD. Когда я создаю приложение, использующее DI, это приводит меня к множеству логических уровней (репозитории, службы (бизнес), сущности, модели и т. Д.). Поскольку я не строго следую TDD, я нахожу эти слои бесполезными и многословными в большинстве случаев!Предоставление DI и использование тестов BDD и интеграции
Теперь, используя Scala и Play Framework, я могу использовать тесты BDD и интеграции легче, чем раньше (я разработчик C#/.NET перешел на Scala/Play).
Итак, это нормально, чтобы отказаться от DI и придерживаться своего рода DDD и вместо этого использовать тесты интеграции и BDD (что следует в простых обучающих программах Play Framework)? Или лучше изучить новые методы DI, которые были представлены в Scala (Cake pattern, MacWire, ...)?
Я не очень разбираюсь в BDD, и я строго придерживаюсь TDD. Но я обнаружил, что DI полезен для сохранения незнания персистенции и сохранения вашего BLL в пользовательских интерфейсах и DAL, что делает его переносимым для других UI/DAL. Более того, мне легко создавать модульные тесты во время попытки отладки моего приложения. Однако этот вопрос, в первую очередь, основан на мнениях. – Fendy
Я не помню, как в последний раз я изменил интерфейс/DAL для конкретного проекта. На самом деле я думаю, что слои имеют некоторые неизбежные эффекты друг на друга, что делает их неспортивными в большинстве случаев, если вы не считаете переносимость с самого начала, которая имеет свои собственные затраты, и вы никогда не сможете использовать эту мобильность. –
Ваше приложение может не работать достаточно долго, так как его необходимо портировать в другой интерфейс/DAL. Сегодняшний пример - перенос вашего веб-сайта на мобильный сайт - один из распространенных примеров, перенос вашего приложения на облачную службу - еще один. – Fendy