동료들이 소스 제어 시스템에서 서로 코드를 검토해야합니까?


9

이것이 저의 이야기입니다. 동료 중 한 명이 개정 시스템에 호스팅 된 모든 코드를 검토하는 데 사용합니다. 나는 그가 속한 부품의 변화에 ​​대한 적절한 검토에 대해 말하고 있지 않습니다. 그는 코드 파일을 파일, 줄 단위로 감시합니다. 모든 새로운 파일과 모든 수정. 훔쳐 보는 것만 같아요!

제 생각에는 코드가 이미 시스템을 제어하기 위해 호스팅 된 경우 적어도 작동 가능한 것으로 신뢰해야합니다. 내 질문은, 아마도 너무 편집증 적이며 서로의 코드를 검토하는 습관이 좋을까요?

추신 : 우리는 단지 세 명의 개발자로 구성된 팀이며, 우리가 더 많아지면 동료가 우리가 작성할 모든 코드를 검토 할 시간이 없을 것이라고 두려워합니다.

답변:


19

나는 YES라고 말할 것입니다!

두 가지 빠른 이유 :

1) 코드가 생산중인 경우 코드가 정확하다고 가정 할 수 없습니다. 시스템의 다른 곳에서 변경하면 버그가 발생할 수 있습니다. 정기적으로 코드를 확인하는 것이 매우 중요하다고 생각합니다. 이런 식으로 리팩토링은 정기적으로 수행되어 코드를 깔끔하고 "더욱"정확하게 유지합니다 (최신 정보가 더 낫습니다).

2) 프로그래머가 되려면 코드를 읽을 수있는 것이 매우 중요한 기술입니다. 그리고 그것은 당신이 작업해야 할 기술입니다. 기존 코드 기반에서 작업을 시작하는 프로그래머의 경우 다른 사람의 코드를 읽는 데 익숙하지 않은 경우 진행 상황을 파악하려는 가파른 학습 곡선이 있습니다.

나는 당신이 첩보를 받아야한다고 생각하지 않습니다. 누군가가 당신에게주는 비판을 받아들이십시오 (물론 유효한 경우). 그리고 다른 사람들에게 타당한 비판을 주시기 바랍니다. 우리가 배우는 방식입니다. 학습을 중단하거나 중단하고 싶다면 큰 문제가 있습니다.


12

만약 그 동료가 훌륭하고 건설적인 피드백을 제공한다면, 이것은 환상적인 것이며 당신은 그것을 대단히 감사해야합니다.

당신이 그것을 쓸 때 생각하지 않았다 버그를 잡을 수있어. 이 당신은 다른 사람이 볼 것이라는 점을 알고 있기 때문에 더 나은 코드를 작성 초래한다.


4

전체 팀이 한 사람 대신 코드 검토를 수행하는 것이 건강합니다. 이상적으로 모든 사람은 완료 후 누군가가 코드를 검토하도록 초대합니다. 비공식적으로 유지하고 (관리자를 멀리 두어야 함) 검토자가 발견 한 내용을 통해 사용자에게 알리는 것이 도움이됩니다. 이상적으로는 리뷰어가 피드백 만 제공하고 코드를 변경하지 않는 것이 좋습니다.

공백 및 코드 스타일에 대한 검토 토론이 끊임없이 이루어지는 것을 피하기 위해 코딩 표준을 갖는 것이 실제로 도움이됩니다. 빌드 머신에서 일부 정적 코드 분석을 수행하면 일부 토론을 유지하는 데 도움이 될 수 있습니다.

시간 측면에서 이론은 시간을 절약 할 수 있다는 것입니다. 나중에 오류가 발생할수록 비용이 많이 들수록 빠른 원칙에 실패합니다. 동료 코드 검토는 많은 문제를 포착 할 수 있습니다.


1
+1 동의 함. 모든 검토를 한 사람이 팀의 불안을 초래할 수 있습니다. 내 코드코드 보다 낫기 때문에 끔찍하게 잘못 될 수 있습니다 . 팀워크가되어야합니다.
Audrius

@Andrius : 슬프다, 네가 무슨 뜻인지 이해 한다.
kizzx2


3

버전 관리 시스템도 비슷한 방식으로 봅니다. 코드베이스가 너무 커서 모든 라인을 볼 수는 없지만 대부분의 변경에 대해 높은 수준의 느낌을 얻으려고합니다. 또한 부작용이있을 가능성이 높은 체크인을 확인하고 해당 라인을 검토합니다. 내가이 일을하는 최소한의 시간 동안, 그 대가는 엄청납니다. (또한 참고 : 나는이 습관을 가진 우리 팀의 유일한 개발자는 아닙니다.)

이런 종류의 검토는 매주 버그를 잡거나 토론을 불러오는 경향이 있습니다. QA를 수행 할 때 시간이 절약됩니다. 토론은 모범 사례에서 알고리즘 설계에 이르기까지 다양합니다. 이 전선의 핵심은 모든 사람이 건설적인 것으로 본다는 것입니다.

개인적으로, 그것은 내가 정기적으로 다루지 않는 코드베이스의 다른 부분에서 무슨 일이 일어나고 있는지에 대한 더 큰 이해를 제공합니다. 다른 사람들이 도움이 필요하면 더 빨리 뛰어들 수 있습니다. 또한 새로운 아이디어가 나타나면 더 빨리 아이디어를 활용할 수 있습니다.


1

당신은 그것을 훔쳐보고 있다고 생각합니다 (!)? 그러나 당신의 동료 관점에서 나는 그가 그의 경력 개발을 위해 옳은 일을하고 있다고 말할 것입니다. 다른 코드를 읽고 로직을 디자인하고 구현하는 방법을 찾으면 많은 도움이 될 것입니다!

IMHO 누군가가 코드에서 무언가 잘못된 것을 지적하면 그것을 받아들이고 좋은 코드를 작성하는 방법에 대해 그들로부터 배워야합니다


1

6-7 개월 동안 나는 똑같이하고있었습니다. 간첩하지 말고 품질을 관리하십시오. 중앙 저장소, 2 개의 주요 언어, 몇 가지 다른 언어, 4 개의 플랫폼을위한 거대한 메이크 파일을 위해 적극적으로 개발 된 애플리케이션을위한 모든 코드 라인.

아주 나쁜 연습 입니다. 언젠가 나는 견고 함으로 모든 것을 포착 할 수 없다는 것을 알았습니다. 이것에 대한 또 다른 논쟁은 주관성입니다-모든 사람이 잘못 될 수 있습니다.

개발자가 서로의 코드를 검토하고 최종 결정을 내리고 방향을 정의한 경험이있는 사람이 더 좋습니다.


1

팀 내 코드 검토 ( fisheye , crucible 또는 기타 도구 사용)는 매우 중요하고 유용합니다. 더 좋은 방법은 시스템에 처음 들어가는 코드를 잘 이해하고 한 사람 이상의 두뇌를 통과하도록하는 직접 쌍 프로그래밍입니다.


0

이것은 내 팀에서 한 번 발생했습니다. 불행히도 그것은 비난 게임을 초래했습니다. 사람들은 계속해서 다른 사람들이 코드를 체크인하기를 기다렸으며 항상 코드에서 무언가를 찾으려고 항상 비난 게임을했습니다.

보다 성숙한 잠재 고객이 있기를 바랍니다.


체크인하기 전에 코더가 코드를 검토하도록 누군가에게 초대하는 것이 좋습니다. 이것은 당신이 묘사하는 광란을 막을 수 있습니다.
Joppe

@Tunga : 재밌는 부분은 검토 된 코드 만 체크 인되었지만 여전히 모든 우수성을 입증하는 데 열중하여 코더와 검토자를 방해하지 않을 것이라는 점입니다. 나는 그것이 매우 재미 있다는 것을 발견했다 :-)
Geek

0

이것은 업계에서 상당히 표준적인 관행입니다. 내가 일한 회사는 매우 엄격한 코드 검토 지침을 가지고 있습니다. 코드를 검토하지 않으면 커밋 할 수 없습니다.

불쾌감을 느끼거나 시청하지 마십시오. 안전망과 학습 경험으로 생각하십시오.


0

이전 작업에서 선임 개발자는 모든 체크인을보고 검토했으며 더 나은 개발자가되도록 도와주는 훌륭한 피드백을 자주 받았습니다.

현재 직장에서 많은 체크인을보고 3 일 전에 버그를 발견하고 개발자에게 알 렸습니다.

이 연습 버그 잡아서 전체 팀을 더 좋게 만듭니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.