-
부스트 캠프 멤버십 특강 - 코드리뷰programing/etc 2021. 2. 13. 01:17
코드리뷰는 협업이다
강대명님의 발표자료를 제가 정리했던 것을 블로그에 남겨봅니다.
코드리뷰에 임하는 자세
코드리뷰에서 기대하는 것은?
- 놓친 실수
- 더 좋은 방식(좀 더 언어스러운 코드)
- 성능 향상
코드리뷰에서 기분이 나쁜 경우
- 자괴감이 들어서
- 인신공격인지 코드리뷰인지..
합의
코드 스타일은 합의된 lint를 이용해 통일
기능 추가는 테스트케이스를 작성해야 한다
하나의 pr에 언제까지 코드리뷰를 받아야 하나? approve 될 때 까지.
그럼 상대방과 나의 생각이 다르다면? 토론을 통해 협의를 한다.
리뷰어
- 코드 품질을 높이기 위해 노력한다
- 동료의 코드를 이해하기 위해 노력한다
- 단순한 스타일 지적은 지양한다 (린트를 쓰자)
- 리뷰이가 투자한 시간 만큼 리뷰어도 시간을 투자하자
리뷰이
- 필요한 배경지식을 추가하면 좋다
- 고민한 내용들을 같이 추가하자
- Pr전 최대한 테스트를 수행하자
- 리뷰어가 공격을 한다는 편견을 버리자.
코드리뷰 치트시트
모자 바꿔 쓰기 (리뷰에서 특정 사명감을 지정하고 진행)
- 동료 개발자의 입장에서 리뷰
- 결함을 찾아내려는 감시관의 입장에서 리뷰
주요 체크항목
- 자료형
- 변수 : Null pointer exception
- 인덱스 : out of index exception
- 조건문 : 중첩 if else, 불린값들의 결합문
- 반복문 : 진입하지 않음, 탈출하지 않음, 이터레이션 도중 대상을 변경
- 함수 : 반환값의 자료형, 인자 개수의 미스매치
- 트랜잭션 : 시작 전의 오류, 완료 후의 오류
- 시스템 콜 : 항상 잘못된 값을 반환하는 가능성을 염두하자
- 재귀 : 종료 조건 확인 (어떤 경우에 탈출을 못할까)
- 순환 : 상태 전이가 잘 되는가? 막힌다면 어디서 막힐까?
- Crud : 누락된 기능은 없는가? 권한 문제는 없는가? (수정 권한이 없는데 수정이 된다던가) 특정 로직에 대해 올바른 메소드를 썻는가?
- Dangling event handler : 이벤트 핸들러가 언제 제거되지 않을까. 중복 등록은 되지 않는가. 객체 제거시 핸들러도 같이 제거되는가?
- 비동기 : 방어장치를 만들자 (동시 진입 거부, 순차 진행 강제, 병렬 진행)
- 최적화 및 성능향상 : 성능 테스트 후 도입하자.
- 요구사항 : 요구사항을 잘 반영했는가?
'programing > etc' 카테고리의 다른 글
비트 연산을 이용한 쿠폰 기능 구현 (0) 2021.08.01 [GitHub] 2FA와 authentication error (0) 2021.06.27 [Git] GitHub과 연동할 때 인증 정보 포함시키는 방법 (0) 2020.06.03 [Kubernetes] API Convention (0) 2020.03.18 [kubernetes] 쿠버네티스 - 쿠버네티스 오브젝트 이해하기 (0) 2020.02.17 댓글