본문 바로가기

개발이야기

Java에서 method작성시 파라미터 개수를 5개미만으로 해야하는 이유??

17년 Google 개발자들이 참여한 논문인 Detecting Argument Selection Defects에 따르면, 5개 이상 인자(argument)을 받을때 개발시 생기는 오류가 급속도로 늘어남을 확인했다고 한다.

 

By analyzing the defects found, we are able to quantify best practice advice for API design and show that the probability of an argument selection defect increases markedly when methods have more than five arguments.

 

5개 이상 인자가 아닐때도 개발 중 오류를 낼 수 있음을 google내부 프로젝트들에 대해 분석하면서 알게되었는데 아래가 그 예이다.

class JanitorFn {
   static Value configure(String fileUser , . . . ) { . . . }
}
public class KeywordSink { 
   private String fileUser;
   public Value write(String stageName , . . . ) 
   { ...
      return JanitorFn.configure(stageName , . . . ); 
   }
}

JanitorFn class는 configure method호출시 첫번째 인자가 fileUser이여야하는데 개발자가 잘못 적은 것이다. 이는 argument selection defects(인자 선택 오류) 중 하나이다. 상기와 같은 인자 선택 오류는 실제 구글내부 프로젝트에서 84건의 실제 사례를 확인 할 수 있었다.


논문에서는 파라미터의 인자 개수와 오류 발생수치간의 관계를 파악하기 위해 실험을 했고, Figure 11과 같이 인자가 5개 이상일때 급속도로 오류 발생률이 증가됨을 확인 할 수 있다.

 

< 출처 > 

Detecting Argument Selection Defects.pdf
1.99MB