지금까지 제가 알고 있는 코드 검사는 일반적으로 지속적인 통합 단계에서 수행됩니다. 이것이 코드의 품질을 보장할 수는 있지만 개인적으로 여전히 비용이 조금 높다고 생각합니다. 주된 이유는 다음과 같습니다.
개발자가 마침내 자신의 브랜치에서 개발을 완료한 다음 서버에 푸시하고 계속해서 통합합니다. 코드를 확인하고 코드 스타일이 통과하지 못하는 것을 발견했습니다. 이 전체 피드백 프로세스는 너무 오래 걸립니다.
현재 개발 중인 Java 프로젝트는 (checkstyle, pmd 등) 코드를 확인할 수 있기를 희망합니다. 이러한 확인은 코드 저장소에 푸시한 후 완료하는 대신 로컬로 제출하기 전에 통과해야 합니다. 달성 방법은 다음과 같습니다:
제출 전 코드 검사를 통과해야 합니다. 그렇지 않으면 제출이 허용되지 않습니다
도구 지원을 받는 것이 가장 좋으며 IDE에 의존하지 마세요
버전 관리는 코드 검사 도구의 구성 파일이 가장 좋습니다
현재 고려 중인 솔루션(아직 시도하지 않음):
메이븐에 체크스타일 및 기타 플러그인 통합
검증을 위해 git/hooks의 스크립트를 사용하여 메이븐을 호출하면 검증이 통과하고 실패하면 제출이 완료됩니다. 허용되지 않습니다
개발자는 출시할 수 없는 브랜치(예: dev)에만 푸시할 수 있으며, 공식적으로 출시된 브랜치(예: 마스터)의 개발자는 직접 푸시할 수 있는 권한이 없습니다.
checkstyle과 같은 플러그인을 서버에 설치합니다. 검사에 통과하면 dev가 마스터에 병합됩니다. 검사에 실패하면 병합이 허용되지 않습니다.
정확하게 이해하셨습니다. git Hook은 이러한 작업을 수행하는 데 사용됩니다
지속적인 통합 과정에서 확인을 위해 Sonar Qube를 사용하고 Jenkins와 협력하여 확인합니다.
개발자에게 나중에 수정할 시간을 주기 때문에 제출 전에 검사를 통과할 필요는 없습니다.
개인적으로는 코드를 컴파일하고 단위 테스트와 통합 테스트만 통과하면 출시가 가능하다고 생각합니다. 코드 검사에서 발견된 문제는 다음 버전 반복에 반영될 수 있으며, 개발 팀장은 개발자가 수정하는 것을 지켜볼 수 있습니다.