제대로 작동하더라도 노인 및 상사와 함께 프로그램을 검토하는 것이 좋습니까?


18

내 회사에서 프로젝트를 진행하기 전에 상사는 내 선배에게 나와 다른 팀원이 작성한 프로그램을 검토하도록 요청하거나 때로는 상사도 검토를 위해 우리와 함께 앉아 있습니다.

지식을 얻는 좋은 방법이라고 생각하지만 때로는 프로그램이 제대로 작동하면 검토 후에도 작동하지 않으므로 프로그램을 다시 살펴 봐야합니다.

그들은 검토가 프로그램과 쿼리 실행을 최적화하는 데 도움이되지만 실제 프로그램 기능보다 최적화를 선호 할 수 있다고 말합니다.


6
자신의 테스트를 수행 할 때 익숙한 특성을 모르는 사람이 검토하지 않고 제대로 작동하는지 어떻게 확인할 수 있습니까?
ratchet freak

테스트 팀이 모듈을 완전히 테스트 한 후 코드를 검토하기 때문입니다.
Himanshu 2016 년

15
@Himanshu : 테스트 후 검토가 너무 늦었습니다 . 진행중인 작업에 대한 검토가 이루어져야합니다.
Jan Hudec

3
이 연습을 받아들이십시오. 우리 팀에서이 일을하고 싶었습니다. 그것은 지식 사일로 (우리에게 큰 문제)를 제거하는 데 도움이되며, 팀원이 코드로 작업 할 수 있도록합니다. 리뷰에서 코드가 때때로 재 작성된다는 의미이면 좋은 것입니다. 훌륭한 프로그래머조차도 때때로 잘못된 코드를 작성합니다. 우리 중 일부는 돌아가서 정리할 시간이 더 필요합니다. 이것은 당신보다 경험이 많은 사람들과 훌륭한 학습 경험을 가질 수있는 기회가되어야합니다. 사람들이 귀하의 코드를 공격하는 것으로 생각하지 마십시오. 보다 숙련 된 프로그래머로 당신을 키우도록 도와주는 사람들로 생각하십시오.
jpmc26

1
팀원들이 많은 운동량을 잃어버린다고 생각할 정도로 코드 검토 중에 "정상적으로 작동하는"코드가 여러 조각으로 찢어지는 것이 일반적이라면 페어 프로그래밍을 고려해야합니다. 쓴.
Buhb

답변:


38

"정상 작업"은 실제로 훌륭한 척도이지만, 팀에서 유일하게 작성한 내용을 해독하여 유지할 수 있다면 코드는 중장기 적으로 가치가 없습니다.

좋은 코드는 최소한 :

  • 의도 한대로 작업
  • 사람이 읽을 수있는 / 명확한
  • 쉽게 유지 보수 가능
  • 향후 변경을 위해 쉽게 확장 가능
  • 안전한
  • 불필요한 의존성없이
  • 명목이 아닌 경우를 올바르게 처리
  • 기타

(이러한 요구 사항 중 일부는 실제로 중복되지만 개별적으로 고려하는 것이 좋습니다 ...)

코드 검토는 자동 테스트를 통해 수행 할 수있는 "작업"부분을 넘어 목적을 제공합니다.

나는 개인적으로 이것이 무언가가 찢어지고 그것을 처음부터 다시 만들어야한다는 것을 귀찮게 알고 있습니다. 그러나 종종 이것은 수석 / 기술 책임자의 잘못된 통신으로 인한 것입니다. 따라서 다음 번에 너무 자주 다시 작성해야한다고 생각되면 한 줄을 작성하기 전에 검토 자에게 가서 가능한 모든 정보를 최대한 상세하게 얻으십시오. 코드 검토 자 팀이 모든 개발자가 참조 할 수있는 공식 문서로 기대치를 요약하면 좋을 수도 있습니다.

더 긍정적 인 측면에서, 세션은 훌륭한 사례 / 디자인을 공유 할 수있는 기회가 될 수도 있습니다.


1
코드를 테스트한다고해서 버그가 없음을 의미하는 것은 아니며 소프트웨어가 충돌하는 경우를 제한합니다.
염료 염료

3
동의합니다. 자동 테스트도 코드를 검토하고 올바른 테스트를 수행하고 있는지 확인해야합니다. 거북은 완전히 내려갑니다.
Xavier T.

12

귀하의 질문을 "기능 코드가 더 이상 컴파일되지 않는 지점까지 검토 할 수 있습니까?" .

예, 그럴 수 있습니다. 일반적으로, 검토 중에 당신이 보는 방법 당신의 코드가 무엇을 수행합니다. 코드를 제출하고 싶을 때 프로그램의 특정 부분을 마쳤다고 말합니다.

당신은 그것이 작동한다고 말합니다. 그런 다음이를 확인하기 위해 테스트가 수행됩니다. 테스트를 통과 한 모듈이 모듈을 다시 만지지 않아야한다는 의미는 아닙니다.

작동하는 것처럼 보이는 모듈은 런타임시 또는 사용자 또는 다른 사람이 유지 보수를 수행해야하는 몇 개월 동안 발생할 수있는 재난 일 수 있습니다. 리뷰에서 코드를 변경하고 무엇이 잘못되었는지 지적함으로써, 리뷰어는 (희망스럽게) 실제로 무언가를 가르치려고합니다.


3

동료 리뷰는 의심 할 여지없이 훌륭한 학습 방법입니다. 누군가 다른 것을 볼 수도 있고, 다른 경험을 가지고 있으며 개선에 기여할 수 있어야합니다. 이것은 혼란스러워해서는 안되며, 개발자가 누군가의 코드를 주석하고 건설적으로 비판 할 수 있기를 기대합니다!

이 "개선"중 일부는 리뷰 개발자가 저자보다 소프트웨어에 대한 경험이 적기 때문에 실제로 변경을하고있는 것처럼 들립니다.

이 추세는 자체 피드백이며 코드를 따르거나 유지하기 어려울 수 있습니까? 당신의 리뷰는 가치가 있습니까? 물론! 어떻게하면 실망 스러울 수 있는지, 동료들이 깨뜨리는 것처럼 보이는 작업 코드를 갖는 것이 마음에 들지 않아야합니다. 이러한 변경으로부터 코드를 보호하기 위해 노력해야합니다.

질문은 프로그램의 기능을 보호하는 방법이되어 검토를 마친 후에도 기능이 여전히 작동하고 있음을 알 수 있습니다. 내 제안은 괜찮은 단위 테스트 범위를 보장하는 것입니다. 그렇게하면 귀하 / 검토 자 / 후임자가 코드를 변경할 때마다 변경 사항이 안전하다는 것을 확신 할 수 있습니다.

ETA : 귀하의 의견 중 하나를 발견했습니다. 아무 말없이 진행될 것이지만 테스트 팀이 직접 검토하기 전에 코드 검토를 수행해야합니다. 그렇지 않으면 최종 제품을 테스트하지 않습니다.


1
통합 테스트는 파손을 감지하는 데 매우 유용합니다.
jpmc26 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.