활동: 코드 검토
목적
|
역할:
기술 검토자
|
빈도: 매 반복마다 |
단계
|
입력물:
|
결과물:
|
툴 강좌:
|
고품질 소프트웨어를 빌드 중인 경우, 구현 검토는 기타 품질
메커니즘(예: 컴파일, 통합 및 테스트)의 보완입니다. 구현을 검토하기 전에
이를 컴파일하고 도구(예: 코드 규칙 검사 프로그램)를 사용하여 가능한 많은
오류를 찾으십시오. 코드를 시각화할 수 있도록 하는 도구의
사용을 고려하십시오. 런타임 오류 발견 도구를 사용하여 코드가 실행되는 경우,
추가 오류가 구현 검토 전에 발견되어 제거될 수도 있습니다.
구현 검토의 장점은 다음과 같습니다.
- 프로젝트에 공통 코딩 양식을 시행하고 장려합니다. 코드
검토는 프로그래밍 가이드라인을 따르는 구성원에게 효율적인 방법입니다.
이를 확인하려면 모든 작성자 및 구현자가 결과를 검토한 다음 모든 소스 코드 파일을
검토하는 것이 중요합니다.
- 자동화된 테스트가 찾지 못하는 오류를 찾습니다. 구현 검토가 테스트의 오류와는 다른
오류를 찾아 냅니다.
- 개인 간 지식을 공유하고 보다 노련한 개인으로부터 덜 노련한 개인으로
지식을 전달합니다.
구현 검토에 사용할 수 있는 여러 기술이 있습니다. 다음 중 하나를
사용하십시오.
- 검사. 구현이 자세히 검사될 형식적 평가 기술. 검사는 가장 생산적인 검토
기술로 여겨지지만 훈련과 준비가 필요합니다.
- 대략적 검토. 구현의 작성자가 하나 이상의 검토자를 구현 전반에 걸쳐
인도하는 평가 기술. 검토자는
기술, 양식, 가능한 오류, 코드 작성 표준 위반 등에 대한 질문을 하고
비평합니다.
- 코드 읽기. 하나 또는 두 사람이 코드를 읽습니다. 검토자가 준비가
되면 만나서 비평과 질문을 제기할 수 있습니다. 그러나 회의는 생략될 수 있습니다. 대신 검토자가 글로 작성된 양식으로 질문과 비평을
작성자에게 제공할 수 있습니다. 코드 읽기는 "정상 검사"로서 작은 수정을
확인하는데 권장됩니다.
이 역할의 기술력 요구사항은 역할: 구현자와
유사합니다. 이 역할을 하는 사람은 종종 검토 중인 코드에 사용되는 프로그래밍 언어의 전문가로
간주됩니다. 대부분의 프로젝트에서 이 역할은 구현 팀의 선임 프로그래머를 사용하여
수행됩니다.
가이드라인: 검토 또한 참조하십시오.
목적 |
구현을 검토하는데 사용하는 체크포인트를 설정하기 위함입니다. |
이 섹션이 검토시 찾아보아야 할 사항의 예와 같이
구현 검토의 일반적인 일부 체크포인트를
제공합니다. 프로그래밍 가이드라인은
코드 품질에 대한 정보의 기본 소스여야 합니다.
일반
- 코드가 프로그래밍 가이드라인에 따르는지 여부
- 코드가 자체적으로 문서화하는지 여부. 코드를 읽는 것으로 이해가 가능한지
여부.
- 코드 규칙 검사 및 런타임 오류 발견 도구로 찾은 모든 오류가
설명되었는지 여부
주석 처리
- 주석이 최신인지 여부.
- 주석이 명료하며 정확한지 여부.
- 코드가 변경되는 경우 주석의 수정이 용이한지 여부.
- 주석이 방법이 아닌 이유를 설명하는데 중점을 두는지 여부.
- 모든 놀랍고 예외적인 경우 및 문제점 해결 오류가 주석 처리되는지 여부.
- 각 조작의 목적이 주석 처리되는지 여부.
- 각 조작에 대한 기타 관련 사실이 주석 처리되는지 여부.
소스 코드
- 각 조작에 조작이 수행하는 사항을 설명하는 이름이 있는지 여부.
- 매개변수에 설명적 이름이 있는지 여부.
- 각 조작에 걸친 정상 경로가 기타 예외 경로와 명확히 구분되는지 여부.
- 조작이 너무 긴지 여부와 관련 명령문을 개인 조작으로 추출하여 단순화할 수
있는지 여부.
- 조작이 너무 긴지 여부와 결정 지점의 수를 줄여 단순화할 수
있는지 여부. 결정 지점은 코드가 다른 경로를 사용할 수 있는
명령문입니다. 예를 들어, if-, else-, and-, while-,
및 case-문입니다.
- 중첩 루프가 최소화될수 있는지 여부.
- 변수의 이름이 잘 지정되었는지 여부.
- 코드가 직설적이며 "영리한" 솔루션을
예방하는지 여부.
목적 |
검토 결과를 문서화합니다.
식별된 결함이 문서화되었는지 확인합니다.
|
각 검토 회의 이후, 회의 결과는
검토 기록에 문서화되어야 합니다. 또한 결함이 변경 요청에 문서화되어야
합니다(그리고 결국 해결책을 소유하고 주도할 사람에게 지정됨).
| |
|