2013-08-23 3 views
1

방금 ​​기존의 C# & VB.Net 프로젝트를 상속했습니다. 지금부터 어떻게 유지 보수해야할까요?레거시 프로젝트에 Ninject 추가 C#

인터페이스가없고 분명히 의존성 주입이 없습니다.

내가 생각하고있는 첫 번째 일은 인터페이스를 만들고 NInject를 추가하는 것입니다. 그런 다음 NInject를 추가하면 결국 프로젝트를 단위 테스트 할 수있게됩니다.

좋은 생각인가요 아니면 혼자 두어야합니까?

레거시 프로젝트의 경우 DI를 구현하는 가장 좋은 방법은 무엇입니까?

감사

답변

1

나는 상식을 사용 이외의 설정 가장 좋은 방법, 생각하지 않는다 - 그것은 시나리오에 의해 케이스의 종류의가. 자문 할 몇 가지 중요한 질문 :

  • 현재 클래스의 인터페이스를 만들려면 얼마나 많은 노력이 필요합니까?

  • 단위 테스트를 작성하는 데 얼마나 많은 노력이 필요합니까? 이러한 단원 테스트는 시간보다 가치를 더할 것입니까?

  • 이 레거시 시스템은 얼마나 오래 유지 관리됩니까? 거대한 업그레이드 (개발 담당자가 를 테스트했을뿐만 아니라 제품 사용자도 테스트해야 함)보다 더 나쁜 것은 없습니다. 18 개월로 바꿉니다.

  • 이 레거시 시스템이 얼마나 오래 문제가 있습니까? 아무런 문제가 없었습니까? 이 안정적으로 보이고 유지 관리가 거의 필요하지 않은 경우 작업을 발명 할 이유가 없습니다.
+0

1) 별다른 큰 시스템이 아니며 10 개 이상의 실체를 식별했습니다. 2) 이것은 몇 달 동안 유지해야 할 필요가없는 파트 타임 프로젝트가 될 수 있지만 예산이 있습니다. 그것과 약간의 자유로운 시간을 응고시키기 위해. 3)이 시스템은 가까운 미래에 교체되지 않을 것이며 아마도 10 년 동안은 그렇지 않을 것입니다. 4) 전 개발 담당자가 모든 기능을 알고 있기 때문에 문제가 없습니다. 고객이 내 학습 기간을 기꺼이 기꺼이 지원할 것입니다. 그래서 나는 이것이 이것을 할 수있는 좋은 방법이 될 것이라고 생각했습니다. – SerenityNow

+0

나는 이것이 포인트 2를 제외하고 몇몇 IoC를 수행하기에 좋은 후보라고 생각합니다. 그들은 그것을 확고히하기를 원합니다. 몇 가지 단위 테스트를하기 위해 코드를 다시 작성하는 것보다 시간을 많이 사용한다고 주장 할 것입니다. 성능, 예외 처리 및 추가 메트릭과 같은 요소는 코드 변경시에만 수행되는 단위 테스트보다 훨씬 중요합니다. – wilso132

+0

도움을 주셔서 감사합니다 – SerenityNow

관련 문제