이 환경에서 리팩토링을 어렵게 만들기 위해 서로 혼합되는 몇 가지 문제가 있습니다. 여기에는 기술적이지 않은 몇 가지 문제가 있습니다 ( "관리 문제이며 아직 달성하지 못한 전투").
살펴볼 첫 번째 문제는 장기 실행 지점입니다. 이러한 지점은 개발자의 관점에서 변경 사항을 추적하는 데 어려움이 있습니다. 이 문제를 해결하려면
- 코드가 완성되면 코드를 한 번만 제공하고 (고객 지원팀에서 원하는 경우 살펴 보도록), 코드를 개발에 신속하게 병합하여 의존하는 다른 변경 사항을 포착하고 충돌하는 변경 사항을 조기에 식별 할 수 있습니다. 진행중.
- 리팩토링이 진행되는 동안 어떤 이유로 브 래치가 오래 걸리는 경우, 변경 사항 및 리팩토링을 취하기 위해 안정적인 지점에서 지점으로 병합하는 것이 좋습니다. 이것은 종종 피처 브랜치에서 안정적인 브랜치로 병합 할 때 충돌과 놀라움을 최소화합니다.
- 모든 통합 테스트는 기능이 아닌 릴리스에서 수행해야 합니다 . 이 환경에서 기능은 시스템과 완전히 통합되거나 통합되지 않을 수 있습니다. 기능에 대한 상태 점검을 단독으로 수행 할 수는 있지만 릴리스시 문제점을 식별하지는 않습니다.
- 코드 완성 시점부터 병합 시점까지 (마스터 / 안정적 / 릴리스에서 분기 할 경우 최신 개발 변경 사항을 적용하지 않는 자체 문제가 있음) 호출 시간이 너무 길지 않아야합니다. 더 오래 기다릴수록 지식이 손실되고 코드가 다른 코드 라인과 통합되기가 더 어려워집니다.
이것과 혼합되는 또 다른 문제는 위의 요점으로 언급 한 점은 시간이 지남에 따라 지점의 변화하는 역할입니다. 개발자가 커밋 한 개발 지점으로 시작한 다음 테스트 영역 (여기서는 응용 프로그램 전체에서 의미가있는 테스트가 수행되고 있습니까?)이 된 다음 안정적인 영역으로 병합됩니다 (아마도 릴리스 되었습니까? 다시 테스트 했습니까?).
기능 시작 시간이 짧을수록 다른 브랜치에서 리팩토링을 더 쉽게 선택할 수 있습니다.
개발자가 전체 환경을 갖도록 장려하십시오. 체리 따기 변경만으로도 흥미로운 개발자 환경을 말할 수 있습니다. 체리 피킹에는 그 용도가 있지만 변경 사항을 브랜치로 가져 오는 기본 모드이기 때문에 걱정할 수 있습니다.
리팩토링은 지속적으로 또는 다운 타임이 발생할 때마다 지속적으로 수행되는 것이 이상적입니다. 브랜치는 간단한 리팩토링을 수행하고 유닛 테스트를 실행하여 모든 것이 여전히 작동하는지 확인합니다 (유닛 테스트, 맞습니까 ? ) ? 다른 개발자가 정보를 전달하여 리팩토링 한 변경 사항을 자체 분기로 가져옵니다.
개발자는 코드의 품질을 소유하는 것이 중요합니다. 기능의 방향은 외부에서 나오고 시간 할당은 종종 우리 자신의 것이 아니지만 코드 품질은 자부심을 가지고 시간을 내야 할 필요가 있습니다.
기술 부채를 다루기위한 시간을 할당하는 데 도움이되는 다음과 같은 질문이 있습니다.
리팩토링에 가장 필요한 코드 영역을 식별하는 데 도움이 되는 소나 와 같은 도구를 살펴볼 수도 있습니다 . 기술 부채 플러그인 코드베이스에서 시간이 지남에 따라 부채의 축적 도와 포인트로 사용할 수있는 무언가이다.
기술 부채 처리에 대한 ROI 가 개발 팀의 기능 및 버그 수정에 대한 처리 시간이 더 빠르다는 점을 지적해야 할 때가 있습니다.