코드리뷰... 어떻게 더 잘할수 있을까?

코드리뷰

우리팀정도면 코드리뷰를 잘 하고있다고 생각하지만, 작업량이 많아지고 코드리뷰 건수 자체가 많아지면서 점점 부담이되고 죄송하게도 좀 더 자세히 리뷰를 못하게되고 있는듯하여 코드리뷰를 더 잘 할 수있는 방법을 찾기위해서 레퍼런스를 찾아 정리해 보았습니다.


카카오스토리팀 레퍼런스 정리 (Kakao Tech)

AS-IS REVIEW
  • 가장 많이 발견되는 리뷰 (컨벤션 - 들여쓰기, 괄호, 공백, 캐멀케이스, 언더스코어…)
  • 큰 사이즈의 커밋 -> 전체 흐름 파악 어려움
  • 리뷰의 병목현상 -> 한번에 머지되어 개별 테스트 하기 어려워짐 -> QA 사항이 늦게 전달
늦어지는 Review
  • 코드양이 많음
  • 우선순위가 낮은 feature
  • 테스트가 많이 필요해 보이는 feature
  • 피드백이 늦는 PR
  • 난이도가 높은 feature
  • 한명이 주도 하는 feature
개선 REVIEW
  • 깃훅에 Lint 추가하여 컨벤션 통일 -> 컨벤션으로 리뷰하는일 없어짐
  • 미리보기 브랜치 생성
  • 리뷰마스터 위촉 : 리뷰 독려하는 역할, 작인 리뷰들은 개인권한으로 병합
  • 큰 feature의 경우 하위 태스크들을 나누어 작업 진행
  • 담당자들끼리 1차리뷰 이후 2차리뷰 진행
  • 적극적이고 잦은 배포
  • 유연한 리뷰 (간단한 커밋은 바로 머지)

원문 / kakaoTech : 카카오스토리 팀의 코드 리뷰 도입 사례 – 코드 리뷰, 어디까지 해봤니?


LINE 블로그

코드리뷰를 제대로 하려면 코드 프로세스를 효율적으로 만들어야 한다.

코드리뷰시 주의할점 (reviewee)
  • PR과 커밋은 되도록 구조적으로 작게 생성하기
  • 리뷰 코멘트의 의도와 이유를 이해하기 : 리뷰어의 코멘트가 모호한 경우, 코멘트에 대한 정확한 의도를 파악후 수정 진행
코드리뷰시 주의할점 (reviewer)
  • 리뷰 거부하기 : 리뷰 가능 여부를 reviewee에게 빠르게 회신해 주어야 함
  • 무엇을 코멘트 해야하는가 : 코딩스타일 / 규약 / 테스트범위의 타당성 / 원칙,명명,주석,절차 등..
효과적인 코드 리뷰를 위한 팁
  • 변화를 작게 유지하자
  • 리뷰는 자주 짧은 세션으로 진행하자
  • 리뷰를 위해 최대한 빨리 PR을 보내자
  • 의미있는 PR을 만들기에 충분한 정보를 제공하자 : reviewer가 PR을 빨리 이해할수 있도록 개발 사항에 대한 충분한 정보를 제공하자
  • 코드 분석 툴을 활용하고 코드 스타일을 확인하자

원문 / LINE Engineering : 코드 가독성에 대해 – 5. 리뷰와 정리
원문 / LINE Engineering : 효과적인 코드 리뷰를 위해서


토스랩 (JANDI)

리뷰 우선순위 설정
  • 월~수 : 개발이 우선순위
  • 목~금 : 리뷰가 우선순위
리뷰 내용
  • 성능 개선
  • 잠재적인 오류
  • 리팩토링 : 테스트코드 및 구조에 대한 질문
  • 신규 기술 도입
  • 코드 컨벤션

원문 / JANDI : 코드리뷰, 이렇게 하고 있습니다.


개발 블로그

Attitude
  • 공격적인 질문 자제 : “왜 이렇게 짯어요?” -> “이렇게 하면 어떨가요?”
  • reviewer는 reviewee의 설명을 다 듣고 발언하자
  • reviewee의 좋은 코드를 발견했을때 칭찬과 격려는 바로하자
  • 불필요한 논쟁은 서로 자제하자 : 컨벤션 논쟁 등등… 미리 지정하는것도 좋은 방법
  • 좋은 코드 방향을 제시하되, 강제하지는 말자

원문 / 블로그 : 코드 리뷰, 5가지만 기억하자.