2013-10-04 3 views
1

Я нахожу это бесполезным и дополнительной работой для использования инъекции зависимостей, в то время как вы не следуете строгому указанию TDD. Когда я создаю приложение, использующее DI, это приводит меня к множеству логических уровней (репозитории, службы (бизнес), сущности, модели и т. Д.). Поскольку я не строго следую TDD, я нахожу эти слои бесполезными и многословными в большинстве случаев!Предоставление DI и использование тестов BDD и интеграции

Теперь, используя Scala и Play Framework, я могу использовать тесты BDD и интеграции легче, чем раньше (я разработчик C#/.NET перешел на Scala/Play).

Итак, это нормально, чтобы отказаться от DI и придерживаться своего рода DDD и вместо этого использовать тесты интеграции и BDD (что следует в простых обучающих программах Play Framework)? Или лучше изучить новые методы DI, которые были представлены в Scala (Cake pattern, MacWire, ...)?

+2

Я не очень разбираюсь в BDD, и я строго придерживаюсь TDD. Но я обнаружил, что DI полезен для сохранения незнания персистенции и сохранения вашего BLL в пользовательских интерфейсах и DAL, что делает его переносимым для других UI/DAL. Более того, мне легко создавать модульные тесты во время попытки отладки моего приложения. Однако этот вопрос, в первую очередь, основан на мнениях. – Fendy

+0

Я не помню, как в последний раз я изменил интерфейс/DAL для конкретного проекта. На самом деле я думаю, что слои имеют некоторые неизбежные эффекты друг на друга, что делает их неспортивными в большинстве случаев, если вы не считаете переносимость с самого начала, которая имеет свои собственные затраты, и вы никогда не сможете использовать эту мобильность. –

+1

Ваше приложение может не работать достаточно долго, так как его необходимо портировать в другой интерфейс/DAL. Сегодняшний пример - перенос вашего веб-сайта на мобильный сайт - один из распространенных примеров, перенос вашего приложения на облачную службу - еще один. – Fendy

ответ

1

TDD != DI != Многоуровневая архитектура.

BDD != NoTDD.

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

+0

Я думаю OP путает Dependency Injection шаблон проектирования с каркасом DI, который требует дополнительных строительных лесов – dkatzel

+0

Хорошо, и не могли бы вы сослаться на некоторые методы, которые помогут мне решить? –

Смежные вопросы