답변:
페이스 북이 phabricator라는 자신의 앱으로 어떻게 작동하는지보십시오 : http://phabricator.org/
그들은 기본적으로 이슈별로 커밋하며, 각 이슈에 대해 누군가가 검토 할 코드가 표시됩니다. 리뷰어가 괜찮다고 말하기 전까지는 코드가 메인 리포지토리에 들어 가지 않습니다.
더 재미있을 것 같아요.
또한 코드는 코드를 작성하는 사람과 코드를 검토하는 사람에게 할당되어야합니다.
아마도 당신의 팀원들은이 리뷰를 믿지 않을 것입니다.
개인적으로 검토자가 부족한 경우 저급 기능에 대해서는 단위 테스트를 사용하고 나머지는 모두 "관리자 테스트"를 사용했습니다. 관리인 테스트조차도 그렇게합니다. 관리 인도 코드를 이해할 수 있어야합니다.
나는 보통 블록 / 함수 범위 괄호, 가시성 표기법, 때로는 유형과 같은 사소한 부분을 제거하고 관리자, 도메인 전문가, 동료에게 코드를 요청한 사람에게 보여주었습니다.
또한, 개인적 으로 거기에 가서 검토가 끝날 때까지 떠나지 않는 것이 도움이됩니다.
또는 팀에 문제가 있거나 팀에 문제가없는 경우 "회사를 바꿀 수 있다면 회사를 바꾸십시오"라는 것을 알고 있습니다.
나는 이것을 몇 가지 가정에 기초 할 것이다.
리뷰를 작성한 사람 만 코드를 체크인하도록 허용하십시오.
어쩌면 혼동되는 문제를 피하기 위해 특정 시간 블록을 코드 검토에 전념 할 수 있습니다.
품질 코드를 확인하는 것이 목표입니다. 모든 사람이 "고무 도장"승인을받은 지점까지 리뷰를 처벌 / 강제하고 싶지 않습니다.
다른 레벨 (jr., sr. 등)이있는 경우 직급을 홍보하고 직급을 유지해야합니다.
우리는 몇 명의 이전 고용주에서 매일 Code Review에있는 사람을 교체했습니다. 일반적으로 3 명이 CR의 날을 공유했으며 각 CR은 검토 자 중 2 명이 서명해야했습니다. 이것은 당신의 하루가되었을 때, 다른 프로젝트와 상관없이 CR이 당신에게 기대된다는 것을 알았습니다. 그래서 5 일마다, 그것은 당신의 차례 였고 그에 따라 개발 작업을 조정할 수있었습니다.
현재 팀 리더는 팀 코드에 커서 CR을 표시합니다. CR이 완료된 후 응용 프로그램의 어느 영역이 업데이트되었는지에 따라 CR이 글로벌 검토 팀에 부딪 칠 수 있습니다. 단일 기능과 관련이 있습니다. 많은 검토가 수행 될 때, 우리는 보통 소수의 사람들 사이에서 분석을 수행하므로 아무도 엄청나게 많은 수의 파일에 대한 변경을 처리 할 필요가 없습니다.
즉, 현재 Dev 분기 / 변형에 커밋 된 코드 만 검토하고 있습니다. 코드는 다음 (예 : 알파) 환경으로 승격되기 전에 코드 검토, 글로벌 검토, DB 검토 및 UI 검토 (필요한 경우)를 통과해야합니다.
마지막으로 리뷰가 얼마나 빨리 처리되는지에 대한 SLA에 동의합니다. 48 시간 이상 대기열에있는 것은 거의 없으며 대부분의 검토는 24 시간 이내에 완료됩니다.
내가 일하는 회사는 모든 코드를 커밋하기 전에 다른 개발자가 검토해야합니다. 우리 팀원들은 종종 좌절합니다 ...
프로덕션 릴리스 후보 코드에 미션 크리티컬 소프트웨어 또는 중요 패치를 수행하지 않는 한 특정 유형의 코드 검토를 엄격하게 고수해야 할 이유는 없습니다.
먼저, 커밋 후 코드 검토가 커밋 전과 동일하게 간주 된다는 경영진을 지적하겠습니다 . 이러한 용어 는 웹에서 검색 할 수 있습니다. 필요한 경우이를 백업하기위한 참조가 있습니다. 100 % 검토 된 코드를 얻기 위해 반드시 사전 커밋 검토가 필요하지는 않습니다 .
위의 내용을 바탕으로 다음은 마이크로 매니지먼트 태도 를 떨어 뜨리고 개발자가 자신에게 더 편한 느낌을 가지도록 제안합니다. 사전 또는 사후 검토는 프로그래머가 선택하는 것이 가장 좋습니다. 회사가 프로그래머보다 더 잘 알고 있다면 왜 코드를 직접 작성하지 않습니까?
해결해야 할 여러 가지 문제가 있습니다. 마음과 생각을 이겨야하고 코드 검토에 시간을 사용할 수 있도록해야합니다.
두 번째 부분은 아마도 가장 쉬운 것입니다-개발자가 매일 아침 가장 먼저하는 일은 코드 검토라는 데 동의합니다 (총체적으로 관리가 포함되어야 함)-이것은 간단하고 이해 가능하며 효과적이며 사람들을 이길 수있는 명확한 명확한 스틱을 제공합니다 그들이 준수하지 않으면. 더 나은, 당신은 아무것도 방해하지 않고, 코드 작업을 중단하도록 요구하지 않고 사람들에게 할 일 목록에 무언가를 넣도록 요구하지 않습니다 ...
첫 번째 부분은 실제 문제입니다. 검토 과정의 참가자는 가치가있는 것으로 간주해야합니다. 그렇지 않으면 코드를 작성하거나 버그를 수정할 수있는 코드 검토 (값이없는 것으로 인식됨)를 수행하지 않습니다. 확실히 더 중요합니다 ...?).
두 가지를 함께 사용할 수 있다면 (첫째로 모든 사람들이 코드 검토에 가치가 있다고 생각하거나 이해하도록 보장하는 것) 가장 기본적으로 버그가 줄어든다는 것을 의미합니다. 일반적으로 더 재미있는 새로운 코드를 의미합니다. 코드 검토를위한 일정에 명확한 공간이있을 수 있기를 바랍니다. 그러면 좋은 일이 일어날 것입니다. 그것은 문화의 일부가 될 것입니다.
문화의 일부가되면 더 이상 "매일"을 말할 필요가 없을 수도 있습니다.하지만 그것이 패턴에 잘 맞다고 생각하면 개발자가 일하고 싶어 할 것입니다.
Review Board 와 같은 도구를 사용해보십시오 . 특히 긴 리뷰에 매우 유용합니다.
diff를 업로드하고 검토자가 검토를 마칠 때까지 기다릴 수 있습니다. 작업을 계속할 수없는 공개 검토가있는 경우 매일 회의 중에이를보고 할 수 있습니다 (팀은 가능한 빨리 테스트 할 수 있도록 새로운 기능을 체크인하기를 원하십니까?).
다른 답변에없는 몇 가지 사항을 추가하십시오.
검토 할 코드는 체크인해야합니다
차단 작업이 우선하므로 코드 검토가 다른 작업보다 우선해야합니다 (그러나 흐름을 방해하지는 마십시오). 개발자는 다른 사람이 코드를 더 잘 검토하기를 원할 것입니다. 그 지식으로 당신은 다른 사람들을 위해 신속하게 검토를 수행해야합니다.
어려운 문제는 코드 검토를 언제 어떻게 수행해야 하는가입니다.
우리를 위해 일한 규칙은 공유 코드가 더 큰 영향을 미치기 때문에 공유 코드를 검토해야하는 반면 단일 응용 프로그램 (특히 테스트 중심 개발을 사용하는 경우)의 코드에서는 덜 중요하다는 것입니다.