내 경험상 가장 좋은 방법은 홀 팀이 코드를 검토하도록하는 것입니다. 각 프로젝트마다 커밋 메일 링리스트를 사용하여 버전 관리 시스템에 대한 모든 코드 변경을 따를 수 있습니다. 대부분의 개발자는 코드 변경에 관심이 있기 때문에 프로젝트 별 메일 링리스트에 가입했습니다.
누군가가 새로운 소스 코드에서 나쁜 길을 발견했을 때, 커미터가 훈련 된 사람이라면 커미터에게 어떻게 더 나은 방법을 설명 할 수 있는지, 또는 경험이 풍부한 커미터라면 그것에 대해 토론을 시작합니다.
물론이 방법은 모든 새 코드가 검토되도록 보장하지는 않습니다. 특히 팀원 중 한 명이 각 코드 변경을 수행 할 여가가없는 스트레스가 많은시기에 더욱 그렇습니다. 또한 모든 개발자가 모든 개발자가 자신의 업무를 훌륭하게 수행 할 책임이있는 것은 아니며, 이것만으로도 검토를 보증 할 수는 없습니다. 그러나 최소한 우리 팀에는 항상 기술 품질을 담당하는 기술 관리자가 있습니다.
다음 점수를 준수하는 경우 코드 리뷰의 진정한 팬입니다.
- 모든 개발자는 자신의 의견에 대한 모든 코드와 주장을 검토 할 수 있습니다
- 아무도 다른 사람의 코드를 남용 할 권리가 없습니다
- 잘못된 코드는 토론을 활성화 할뿐만 아니라 좋은 코드도 활성화합니다
- 토론은 모든 관련 사람들의 행복으로 끝납니다
- 최소한 기능이 완료되기 전에 검토가 거의 실시간으로 이루어집니다.
내가 배운 것은 각 코드 줄을 검토하고 코드 형식 또는 코드 효율성 측면에서 코드 품질과 같은 것들을 제어해야한다고 생각하면 기계가 할 수있는 일을하기 때문에 자신이 매우 비효율적이라는 것입니다 당신. 목표는 각 코드 기여의 빌드 및 코드 품질을 제어하는 지속적인 통합 시스템을 사용해야합니다. 이 시스템이 보고서를 작성하여 기고자에게 보내면 모든 것이 완벽합니다.
프로그래머의 품질을 제어하거나 순위를 매겨 야하기 때문에 코드를 검토해야한다면 제 제안은 이해가되지 않습니다. 이 경우 소스 코드를 한 줄씩 검토하지도 않습니다. 나는 다음과 같은 것들을 검토 할 것이다 :
- 보안 관련 문제가 있습니까
- 사용 된 API
- 코드가 지정된 아키텍처를 적용 했습니까?
- 그는 유용한 테스트를 작성 했습니까 (그러나 그가 암시 적으로 지시받은 경우에만 배워야했습니다)
- 선적 서류 비치
- 빌드 프로세스
- ... 그리고 아마도 더
숙련 된 개발자라면 항상 더 나은 성능으로 할 수있는 루프와 같은 것을 찾을 수 있습니다. 물론 다른 사람들에게 그러한 지식을 설명하는 것이 유용하지만 이것은 검토 세션의 일부가되어서는 안됩니다. 중대한 성능 문제가있는 경우에는 목록 유형의 덜 효율적인 변형을 사용했기 때문이 아닙니다.
초기 질문은 일부 사람들이 다른 사람들보다 더 나은 검토를하는 것처럼 보였기 때문에이 사람들은 실제 검토가 시작되기 전에 미리보기를 할 것이라고 대답했을 것입니다. .