기능 토글 링은 새로운 기능에 완벽하게 작동합니다. 대부분의 경우 기능은 기능 구성에 따라 표시되거나 표시되지 않을 일부 UI 컨테이너로 간단하게 둘러싸여 야합니다. 그러나 새로운 기능이 기존 코드 기반을 크게 변경해야하는 경우 기능 토글 기능을 어떻게 사용할 수 있습니까? "& 변경 복사"를 사용할 수 없습니다. 왜냐하면 분명히 기능 분기보다 훨씬 나빠서 - 병합 충돌이 발생하지 않기 때문입니다. 그런 요구 사항에 대한 모범 사례는 무엇입니까?새로운 기능에서 코드베이스를 크게 변경해야하는 경우 기능 토글을 처리하는 방법은 무엇입니까?
4
A
답변
1
기능 토글 링을 IoC 컨테이너와 결합하여 구성 요소의 다른 구현을로드 할 수 있습니다. 예를 들어 토글 "A"는 구현 "X"를로드하고 토글 "B"는 구현 "Y"를로드합니다. 이 방법을 사용하면 병렬 구현을 유지하고 단일 토글을 기반으로 레거시 및 새 기능을 사용할 수 있습니다.
+0
이러한 접근에는 두 가지 문제가 있습니다. 첫 번째 문제는 레거시 코드에서 수정 된 버그가 새 코드에서 수정 될 수 없다는 것입니다 (단원 테스트가 여기에서 도움이 될 수 있음). 그러나 두 번째로 중요한 문제는 새 구현을 만들기 전에 이전 객체를 다시 작성해야한다는 것입니다 (리팩토링하지 않아도 됨). – Sane
토글 링하려는 '이전'기능과 관련된 모든 컨트롤을 숨길 수 있습니까? 또는 새 UI 컨테이너로 이동하십시오. 예를 들어 WinAPI에서는 단순히 컨트롤 목록을 만들고 SetParent SetWindowPos를 수행합니다. – exebook