나는 의존성 주입 (DI) 및 자동화 된 테스트 의 큰 팬이라는 것을 알게되었습니다 . 나는 하루 종일 그것에 대해 이야기 할 수 있습니다.
배경
최근에 우리 팀은이 큰 프로젝트를 처음부터 새로 만들었습니다. 복잡한 비즈니스 요구 사항이있는 전략적 응용 프로그램입니다. 물론, 나는 그것이 깨끗하고 깨끗하기를 원했습니다. DI를 사용하고 싶었습니다.
저항
문제는 우리 팀에 있었고 DI는 금기입니다. 그것은 몇 번 제기되었지만 신들은 승인하지 않았습니다. 그러나 그것은 나를 낙담시키지 않았습니다.
나의 움직임
이상하게 들릴 수 있지만 타사 라이브러리는 일반적으로 건축가 팀에서 승인하지 않습니다 ( " 단 , 손가락을 자르지 않도록 Unity , Ninject , NHibernate , Moq 또는 NUnit에 대해 이야기해서는 안됩니다 "). 그래서 기존의 DI 컨테이너를 사용하는 대신 매우 간단한 컨테이너를 작성했습니다. 기본적으로 시작에 대한 모든 종속성을 연결하고 종속성 (생성자 / 속성)을 주입하고 웹 요청 끝에 일회용 객체를 배치합니다. 그것은 매우 가볍고 우리가 필요로하는 것을했습니다. 그런 다음 검토를 요청했습니다.
응답
글쎄요. 나는 강한 저항에 부딪쳤다. 주요 논쟁은 "이 복잡한 계층을 이미 복잡한 프로젝트에 추가 할 필요는 없다"는 것이었다. 또한 "다른 컴포넌트 구현을 연결하는 것과는 다릅니다". 그리고 "가능한 한 모든 것을 하나의 어셈블리에 넣는 것만으로 간단하게 유지하고 싶습니다. DI는 이점이없는 불필요한 복잡성입니다."
마지막으로, 내 질문
내 상황을 어떻게 처리하겠습니까? 저는 아이디어를 잘 표현하지 못하며 사람들이 자신의 주장을 어떻게 표현할 것인지 알고 싶습니다.
물론, 나는 나처럼 DI를 선호한다고 가정합니다. 동의하지 않으면 동전의 다른 쪽을 볼 수 있도록 이유를 말하십시오. 동의하지 않는 사람의 관점을 보는 것이 정말 흥미로울 것입니다.
최신 정보
모든 사람의 답변에 감사드립니다. 그것은 실제로 사물을 원근법에 넣습니다. 당신에게 피드백을 줄 다른 눈을 가지고 있으면 충분합니다 .15는 정말 굉장합니다! 이것은 정말 훌륭한 답변이며 다른 측면에서 문제를 볼 수 있도록 도와 주지만 한 가지 답변 만 선택할 수 있으므로 가장 인기있는 답변을 선택합니다. 시간을내어 답변 해 주셔서 감사합니다.
DI를 구현하기에 가장 좋은시기는 아니라고 판단했으며 아직 준비가되지 않았습니다. 대신, 나는 디자인을 테스트 할 수있게 만들고 자동 단위 테스트를 제시하기 위해 노력할 것이다. 필자는 테스트 작성이 추가 오버 헤드이며 추가 오버 헤드가 가치가 없다고 결정되면 개인적으로 디자인을 테스트 할 수 있기 때문에 여전히 승리 상황으로 간주합니다. 그리고 만약 테스트 나 DI가 미래에 선택된다면, 디자인은 쉽게 처리 할 수 있습니다.