나는 사람들이 코드 리뷰를 얼마나 자주하고 있는지, 얼마나 자주 리뷰를하는 것이 좋다고 생각하는지 알고 싶습니다. 또한 코드 검토 수행 방법에 대해 알려드립니다. 지금은 TTC를 사용하고있어 매우 만족하지만 코드의 모든 부분을 다루지는 않는다고 생각합니다.얼마나 자주 코드 검토를 수행해야합니까?
답변
코드가 트렁크에 코드 을 투입하기 전에 항상 코드 검토를 수행합니다. 닐 버터 워스 (Neil Butterworth)는 잦은 커밋이 장려되고 커밋하기 전에 코드 검토가 필요하다는 사실에 동의합니다.
정확한 조건은 환경 및 프로젝트에 따라 다릅니다. 우리의 환경은 다음과 같습니다
- 트렁크가 항상 작업 (예 : 컴파일하거나 테스트를 실패하지 않는 트렁크에 물건을 저 지르지해야하는 규칙을 가지고 트렁크에 개발의 우리의 메인 라인을 유지 등) 각각의 경우 (기능, 버그 수정 등)
- 이 검토 을 통과 할 때 트렁크에 아래로 가지를 병합
- 주어진 지점에서 작업이 완료되는 코드 검토를 수행하기위한
- 지점
- 릴리스가 생성되면 골드 릴리스 개정 및 분기에 태그를 지정합니다. 특정 릴리스에 대한 모든 새로운 버그 수정이 해당 분기에서 발생합니다. 릴리스 분기는 트렁크로 다시 병합되지 않습니다. 우리의 환경에서
, 이것은 개발자가 코드 (그러나 모든 커밋) 작업의 모든 단위를 수행 할 리뷰 (자신의 지점의 범위 내)와 자주 커밋 할 수 있습니다.
코드 검토를 수행하는 방법에 관해서는 훨씬 야심적인 질문입니다. SO에 자신의 질문을받을 권리가 하나는 (이미 실제로 여러 가지가 있습니다) :
https://stackoverflow.com/questions/89163/how-to-conduct-a-successful-code-review Best Peer Code Review Software https://stackoverflow.com/questions/tagged/code-review
체크인하기 전에 체크 인은 종종 프로그래머에 따라 함수/모듈의 논리적 완성과 연결되기 때문에 좋은 시간입니다. 코드를 체크인 할 때 누가 언제 무엇을 코딩했는지 추적하기가 이미 어렵습니다.
나는 완전히 코드 검토는 체크인하기 전에 개최해야한다는 것을 동의하지 않는다. 빈번한 체크인은 장려되어야 할 것이고 코드 검토는 꼭 필요한 도구이지만이 방법으로 만 얻을 수 있습니다. –
@ Neil, 대안 PLZ로 답변 해 주시겠습니까? –
각 팀이 귀하의 팀이 편할만한 크기를 검토하는 것도 좋은 생각입니다. 변경 사항의 크기와 검토가 수행되는 빈도 사이의 균형을 찾고 있습니다. 덩어리가 너무 크고 검토자가 관심을 잃고 세심한주의를 기울이지 않고 넘어 질 수 있습니다. 너무 빈번한 리뷰는 리뷰어의 실제 작업에 찬성하여 연기 될 수 있습니다. –
체크인 할 때마다 체크 인 전에 언제든지 체크인 할 수 있습니다. 그러나 프로젝트에 따라 코드를 수행하는 것이 더 자주 필요할 수 있습니다.
프로젝트를 진행하는 데 수주가 걸리고 해당 기간 동안 코드를 체크인하지 않으면 프로젝트의 다양한 구성 요소가 완료 될 때 코드를 받아야합니다. 그 이유는 잘못된 디자인 패턴이 전체 프로젝트를 통해 반복되지 않고 검토에서 필요한 변경 사항이 적게 드는지 확인하기 위해 코드를 지속적으로 검토해야하기 때문입니다.
개발자가 많으면 많을수록 코드를 검토해야한다고 제안합니다.
몇 주 동안 체크인하지 않으셨습니까? 코드는 하루에 여러 번 점검해야합니다. –
아마도 더 좋은 방법은 부모 지점으로 승격하는 것보다는 오히려 체크인하는 것입니다. –
- 1. Event.RENDER가 얼마나 자주 호출됩니까?
- 2. EntityManager를 얼마나 자주 만들어야합니까?
- 3. 라이센스를 얼마나 자주 확인합니까?
- 4. 얼마나 자주 autoconf를 실행합니까?
- 5. 얼마나 자주 파일에 저장해야합니까?
- 6. GC는 얼마나 자주 실행됩니까?
- 7. 얼마나 자주 테이블 쿼리를
- 8. 얼마나 자주 맞춤 이벤트를 사용합니까?
- 9. 파이썬 장식자를 얼마나 자주 사용해야합니까?
- 10. 파이썬은 얼마나 자주 파일로 플러시됩니까?
- 11. 얼마나 자주 WSDL URL을 읽어야합니까?
- 12. 얼마나 자주 코어 데이터에 저장해야합니까?
- 13. 연속 통합 - 얼마나 자주 지속됩니까
- 14. 얼마나 자주 Quartz Scheduler가 깨어나나요?
- 15. 얼마나 자주 QT에서 데이터베이스를 설정해야합니까?
- 16. 데이터베이스 연결을 얼마나 자주 닫아야합니까?
- 17. 코드 검토를 위해 git에서 변경 집합을 병합
- 18. 빠른 코드 검토를 요청할 수있는 곳이 있습니까?
- 19. Booksleeve 연결을 얼마나 자주 열고 닫아야합니까?
- 20. SQL Server 2000에서 얼마나 자주 통계를 업데이트합니까?
- 21. Form.KeyDown 이벤트에 대해 키보드를 얼마나 자주 폴링합니까?
- 22. android는 위치 업데이트를 얼마나 자주 요청합니까?
- 23. Silverlight 액세스 정책은 얼마나 자주 액세스됩니까?
- 24. 웹 채팅 클라이언트는 업데이트를 얼마나 자주 확인해야합니까?
- 25. APNS는 얼마나 자주 장치에 메시지를 푸시하려고합니까?
- 26. SpriteBatch.Begin() /. End()를 얼마나 자주 호출합니까?
- 27. 마켓 앱 통계는 얼마나 자주 업데이트됩니까?
- 28. 얼마나 자주 버텍스 쉐이더가 호출 될 것입니까?
- 29. 얼마나 자주 System.Component.BackgroundWorker를 UI에 사용합니까? (혹시라도)
- 30. getWritableDatabase() 및 getReadableDatabase()를 얼마나 자주 실행합니까?
흥미로운 접근 방식으로,이 도구를 간소화하기 위해 어떤 도구를 사용하여 버그/기능/기타 작업을 시작할 때 gazillion 단계가 필요하지 않습니까? –
+1 : 제가 작업 한 모든 프로젝트에서 꽤 일반적인 표준 사례입니다. 쉽고 간단합니다. –
FogBugz를 사례 추적에 사용하고 Subversion을 소스 제어에 사용합니다. TortoiseSVN을 사용하여 트렁크에서 분기하고 작업 복사본을 전환합니다. 그런 다음 작업이 완료되고 검토 준비가 완료되면 검토 자에게 사례를 지정합니다. 검토가 완료되면 원래 개발자가 TortoiseSVN을 사용하여 트렁크에 병합합니다. 나는 FogBugz 7 (우리는 여전히 6에있다)이 워크 플로우 관리를 제공하므로 SVN 단계가 아닌 워크 플로우를 자동화 할 수 있다고 생각한다. 우리는이 워크 플로우를 따르는 것이 어렵거나 지루하다는 것을 알지 못했습니다. –