ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 부스트 캠프 멤버십 특강 - 코드리뷰
    programing/etc 2021. 2. 13. 01:17

    코드리뷰는 협업이다

    강대명님의 발표자료를 제가 정리했던 것을 블로그에 남겨봅니다.

     

    코드리뷰에 임하는 자세

    코드리뷰에서 기대하는 것은?

    • 놓친 실수
    • 좋은 방식( 언어스러운 코드)
    • 성능 향상

    코드리뷰에서 기분이 나쁜 경우

    • 자괴감이 들어서
    • 인신공격인지 코드리뷰인지..

    합의

    코드 스타일은 합의된 lint 이용해 통일

    기능 추가는 테스트케이스를 작성해야 한다

     

    하나의 pr 언제까지 코드리뷰를 받아야 하나? approve  까지.

    그럼 상대방과 나의 생각이 다르다면? 토론을 통해 협의를 한다.

    리뷰어

    1. 코드 품질을 높이기 위해 노력한다
    2. 동료의 코드를 이해하기 위해 노력한다
    3. 단순한 스타일 지적은 지양한다 (린트를 쓰자)
    4. 리뷰이가 투자한 시간 만큼 리뷰어도 시간을 투자하자

    리뷰이

    1. 필요한 배경지식을 추가하면 좋다
    2. 고민한 내용들을 같이 추가하자
    3. Pr 최대한 테스트를 수행하자
    4. 리뷰어가 공격을 한다는 편견을 버리자.

    코드리뷰 치트시트

    모자 바꿔 쓰기 (리뷰에서 특정 사명감을 지정하고 진행)

    • 동료 개발자의 입장에서 리뷰
    • 결함을 찾아내려는 감시관의 입장에서 리뷰

    주요 체크항목

    • 자료형
    • 변수 : Null pointer exception
    • 인덱스 : out of index exception
    • 조건문 : 중첩 if else, 불린값들의 결합문
    • 반복문 : 진입하지 않음, 탈출하지 않음, 이터레이션 도중 대상을 변경
    • 함수 : 반환값의 자료형, 인자 개수의 미스매치
    • 트랜잭션 : 시작 전의 오류, 완료 후의 오류
    • 시스템 : 항상 잘못된 값을 반환하는 가능성을 염두하자
    • 재귀 : 종료 조건 확인 (어떤 경우에 탈출을 못할까)
    • 순환 : 상태 전이가 되는가? 막힌다면 어디서 막힐까?
    • Crud : 누락된 기능은 없는가? 권한 문제는 없는가? (수정 권한이 없는데 수정이 된다던가) 특정 로직에 대해 올바른 메소드를 썻는가?
    • Dangling event handler : 이벤트 핸들러가 언제 제거되지 않을까. 중복 등록은 되지 않는가. 객체 제거시 핸들러도 같이 제거되는가?
    • 비동기 : 방어장치를 만들자 (동시 진입 거부, 순차 진행 강제, 병렬 진행)
    • 최적화 성능향상 : 성능 테스트 도입하자.
    • 요구사항 : 요구사항을 반영했는가?

    댓글

Designed by black7375.