JAVA 메서드명 네이밍
코드를 읽는 사람이 코드의 의도를 파악하기 쉽게하며,
코드를 작성한 개발자의 의도를 명확하게 전달하기위해 코드의 네이밍이 중요하다.
다음 메소드를 예를 들어보자.
public List<int[]> getThem() {
List<int[]> list1 = new ArrayList<int[]>();
for (int[] x : theList) {
if (x[0] == 4) {
list1.add(x);
}
}
return list1;
}
각 이름이 충분한 정보를 제공하지 않아,
코드를 작성한 의도와 목적이 불분명하며 다른 사람이 쉽게 읽을 수 없다.
public List<int[]> getFlaggedCells() {
List<int[]> flaggedCells = new ArrayList<int[]>();
for (int[] cell : gameBoard) {
if (cell.isFlagged()) {
flaggedCells.add(cell);
}
}
return flaggedCells;
}
각 이름이 명확하여 다른사람이 코드를 읽기 쉬워진다.
네이밍시 중요한 고려사항
public void calculateTotalPrice(List<Item> items) {}
1.왜 존재해야하는가?
이 메서드는 왜 필요한지 명확하게 정의해야한다.
-> 전달된 상품 목록의 총 가격을 계산하기 위해 존재한다.
2.무슨 작업을 하는가?
이 메서드는 어떤 작업을 수행하는지 이해할 수 있어야한다.
-> 메서드는 상품의 목록을 받아서 총 가격을 계산하는 작업을 수행한다.
3.어떻게 사용하는가?
코드 내에서 이 메서드를 어떻게 사용하는지를 고려하여 이름을 선택해야한다.
-> 주로 상품 목록을 입력으로 받아 총 가격을 반환하는 용도로 사용된다.
public double calculateTotalPrice(List<Item> itemList) {}
따라서, 이 메서드의 이름을 더 명확하게 만들기 위해 다음과 같이 변경할 수 있다.
메서드 명명 규칙
1.메서드 이름은 lowerCamelCase를 사용한다.
2.메서드 이름은 주로 동사 또는 전치사로 시작한다.
- 동사로 시작하는 메서드이름 예시:
getUserByName();
setDisplayName();
inputData(String input);
- 전치사로 시작하는 메서드 이름 예시:
toString();
of()
자주 사용되는 동사
get
/set
: getter
및 setter
메서드의 이름으로 사용된다.(자바 빈 규약)
init
: 데이터 초기화를 수행하는 메서드의 이름으로 사용된다.
// User클래스 안에 있다면 User 데이터를 초기화하는메서드
public void initData(){...}
is
: 맞는지 틀리는지 판단하는 메서드명에 쓰인다.
// 활성화가 되었는지 확인하는 메서드
private boolean isActive() {...}
has
: 데이터를 가지고 있는지 확인하는 메서드명에 쓰인다.
// 데이터를 가지고 있는지 확인하는 메서드
private boolean hasData() {...}
can
: 할수 있는지 없는지 확인하는 메서드명에 쓰인다.
// 시작을 할 수 있는지 없는지 확인하는 메서드
public boolean canStart() {...}
is
/has
/can
: boolean 값을 반환하는 메서드의 이름으로 사용된다.
create
: 새로운 객체를 생성하고 반환하는 메서드 이름으로 사용된다.
// User 객체를 만든 후 리턴해주는 메서드
public User createUser() {...}
find
: 데이터를 찾는 메서드 명에 쓰인다.
// number에 해당하는 Element를 찾아 리턴하는 메서드
public Element findElement (int number){}
to
: 해당 객체를 다른 형태의 객체로 변환해주는 메서드 이름으로 사용된다.
// String으로 변환하는 메서드
public String toString();
A-By-B
: B를 기준으로 A를 하겠다는 메서드 이름으로 사용된다.
// Name을 기준으로 User를 get하는 메서드
public void getuserByName(String name) {}
위 규칙를 따르면 다른 사람들이 코드를 이해하고 사용하기 더 쉬워지며 코드의 가독성과 유지보수성이 향상된다.
댓글남기기