독개

함수/변수명 잘 짓는 방법 #1

by #독개#

1. 변수 네이밍

 

기본 규칙

  • 대소문자 구분 , 길이의 제한 없다
  • 예약어 사용 X
  • 숫자로 시작 X
  • 특수문자 _ 와 $ 만 허용

좋은 변수명 

  • 변수의 첫글자는 소문자로 시작하는 명사로 시작
  • 여러 단어로 이루어진 이름의 경우 각 단어의 첫 글자를 대문자로 (카멜표기법)
  • 이름은 가능한 구체적이어야 한다. 하나이상의 목적으로 사용될 이름은 좋지 않다
  • 이해하기 쉬운 이름, 차라리 이름이 길어지는게 낫다 상세히 설명, 줄여쓰지 말자

For문

//잘못된예
private void validateNumericPosition(String[] expressionAsArray) {
    for (int i = 0; i < expressionAsArray.length; i += 2) {
    	...
    }
}

//올바른예
private void validateNumericPosition(String[] expressionAsArray) {
    int numberIndex = 2;
    for (int i = 0; i < expressionAsArray.length; i += numberIndex) {
    	...
    }
}

 

 

맴버변수 구구절절xx

  • 의도가 불분명한 이름보다는 의미있는 맥락이 있는 긴 이름이 좋다
  • 하지만 쓸데없이 구구절절한 이름은 오히려 독이다
  • 굳이 멤버 변수의 이름을 userName으로 지을 필요없다
  • 나중에 불러올때 User.userName , User::userName 이렇게 된다

 

//잘못된예
public class User{
String userName;
int userAge;
...
}

//올바른예
public class User{
    String name;
    int age;
    ...
}

 

Bool 변수

 

참인 의미를 함축하는 불린 변수의 이름을 사용한다.

 

//둘중 뭐가더 읽기 쉬운가
if(notFound == false) {...}
if(found == true) {...}

 

  • 참이나 거짓의 의미를 함축하는 불린 변수의 이름을 사용한다.
  • status, sourceFile 같은 변수들은 참이나 거짓이 명백하지 않으므로 좋지 못하다
  • statusOK, sourceFileAvailabe 또는 sourceFileFound 와 같은 이름이 좋다
  • iffound 보다 found가 더좋다

 

변수명에 자료이름 X

 

구지 변수이름에 자료형 이름 int, char 이런거 넣지말자

나중에 자료형 바꿔야하면 이름도 모두 바꿔야한다 타입을 통해서 충분히 어떤 변수인지 파악 가능하다

 

List, Collection 등의 자료형엔 복수형 명사

private List<Double> numbers = new ArrayList<>();
private List<String> operators = new ArrayList<>();

 


2. 함수 네이밍

 

나혼자의 약어 금지

 

  • 쓸데없이 줄이지 말자 차라리 길고 명확한게 좋다
  • GetBlockedUserDataList 이걸 GetBUDL 이런식으로 줄이면 안된다
  • 관례적으로 줄여오는건 괜찮다
  • GetProcessID 를 GetPID 이렇게 줄이는건 괜찮다 다들 이해하니까
  • Database = DB

 

정확한 이름 사용

 

이름이 길다고 함축적인 것 하지말고, 정확하게 뭘하는지 뭘하는 함수인지 명확히 나타내주자

 

모든 구현을 다 나타낼 것

 

절대로 구현을 숨기지 마라

 

의도를 명확하게 하기 위한 래핑

void highlight(Rectangle area)
{
reverse(area);
}

 

그냥 reverse라는 함수를 써도 되지만 highlight 라는 함수로 래핑하므로써 hightlight 하기 위한 함수구나  의도를 드러냄

 

주석은 꼭 필요할때 자세히

 

 

  • 주석대신 코드로 설명하려다 보면 코드 품질이 많이 좋아진다
  • 주석이 대체적으로 불필요한 코드를 만드는게 더 좋다
  • 하지만 주석을 무조건 안다는게 좋다X 주석을 달아서 도움이 되는 부분이 있으면 당연히 달아야한다

 

 

예상되는 이름의 짝 사용

  • Get이 있으면 Set이 어딘가에 있겠구나
  • Load & Unload
  • Creat & Destory
  • Creat & Delete
  • Map & UnMap
  • GetUserData & SetUserData (ModifyUserData 보다 예상되는 Set이 맞다)
  • LoadUserData & UnLoadUserData

 

EditUserData, ModifyUserData 보다는 UploadUserData를 많이 쓴다

 

 

3. 참고

 

 

좋은 코드를 위한 자바 변수명 네이밍

JAVA…

tecoble.techcourse.co.kr

 

https://www.youtube.com/watch?v=GlIYGrXWIuk&t=312s 

블로그의 정보

독한 개발자

#독개#

활동하기