코드 리뷰 과정에서 리뷰어들이 코드 스니펫을 제공하는 주된 목적은 제안과 인용이며, 대부분의 개발자들은 리뷰어의 코드 스니펫 제안을 수용한다.
Abstract
이 연구는 코드 리뷰에서 코드 스니펫 사용의 실태와 목적을 탐구하기 위해 수행되었다. 연구는 두 단계로 진행되었다:
탐색적 연구: OpenStack과 Qt 커뮤니티의 코드 리뷰 데이터를 분석하였다. 총 69,604개의 리뷰 코멘트를 수동으로 라벨링하여 3,213개의 코드 스니펫이 포함된 리뷰 코멘트를 식별하였다. 이를 바탕으로 다음을 분석하였다:
코드 스니펫 사용의 정도
리뷰어가 코드 스니펫을 제공하는 목적
개발자가 리뷰어의 코드 스니펫 제안을 수용하는 정도
개발자가 리뷰어의 코드 스니펫 제안을 수용하지 않는 이유
산업 설문조사: 63명의 실무 개발자를 대상으로 온라인 설문조사를 실시하였다. 설문을 통해 다음을 탐구하였다:
리뷰어가 코드 스니펫을 제공하는 시나리오
개발자의 코드 스니펫에 대한 태도
개발자가 리뷰어에게 기대하는 코드 스니펫의 특성
연구 결과는 다음과 같다:
코드 스니펫은 코드 리뷰에서 자주 사용되지 않으며, 대부분의 코드 스니펫은 리뷰어가 제공한다.
리뷰어가 코드 리뷰에서 코드 스니펫을 제공하는 주된 목적은 제안과 인용이며, 제안이 주된 목적이다.
대부분의 개발자는 리뷰어의 코드 스니펫 제안을 수용한다.
개발자가 리뷰어의 코드 스니펫 제안을 수용하지 않는 가장 큰 이유는 개발자와 리뷰어 간의 의견 차이와 리뷰어의 제안이 결함이 있기 때문이다.
리뷰어는 코드로 설명하는 것이 문자로 설명하는 것보다 효과적일 때 코드 스니펫을 제공한다.
대부분의 개발자는 코드 스니펫이 포함된 리뷰 코멘트에 긍정적인 태도를 가지고 있다.
대부분의 개발자는 리뷰어가 제공하는 코드 스니펫이 간결하고, 정확하며, 실행 가능할 것을 기대한다.
Demystifying Code Snippets in Code Reviews
Stats
"코드 스니펫은 코드 리뷰에서 자주 사용되지 않으며, 대부분의 코드 스니펫은 리뷰어가 제공한다."
"대부분의 개발자는 리뷰어의 코드 스니펫 제안을 수용한다."
"개발자가 리뷰어의 코드 스니펫 제안을 수용하지 않는 가장 큰 이유는 개발자와 리뷰어 간의 의견 차이와 리뷰어의 제안이 결함이 있기 때문이다."
Quotes
"리뷰어가 코드 리뷰에서 코드 스니펫을 제공하는 주된 목적은 제안과 인용이며, 제안이 주된 목적이다."
"대부분의 개발자는 코드 스니펫이 포함된 리뷰 코멘트에 긍정적인 태도를 가지고 있다."
"대부분의 개발자는 리뷰어가 제공하는 코드 스니펫이 간결하고, 정확하며, 실행 가능할 것을 기대한다."