✏️ java code convention

김다혜·2020년 5월 24일
1
post-thumbnail

🤔 왜 code convention을 맞추고, 지켜야 하는가 ?

code convention을 지키는 것을 감히 개발자에게 가장 기본이라고 말하고싶다.
사실 신입 개발자일 때, 공감하지 못했던 내용이다. (code convention이 뭔지도 몰랐다고 해야될까 ?)
신규 프로젝트를 진행하면서, 함께하는 개발자가 나서서 code convention을 맞추자고했다. 나는 그래서 처음으로 code convention다운 convention을 지키기 시작했다.

code convention을 지키면서 개인적으로 느꼈던 장점은 두 가지다.
1. 코드의 가독성이 좋아진다.
2. 코드 변경 사항이 있을 때, 쓸모없는 변경점이 잡히지 않는다.

이 두가지만으로도 꼭 지키고 싶어지고 지켜야만 한다고 생각되지 않는가? 😉

여기서 꼭 말하고 싶은건 두가지이다.
1. code convention을 지키자.
2. code convention을 함께하는 개발자와 맞추자. (개인이 지켜도 함께하지 않으면 무의미하다고 꼭 말하고싶다.)

💡 대표적으로 알아야 할 convention

아래의 내용은 nextstep의 cleancode 8기를 수강하며 학습한 convention과 꼭 알아야할 convention에 대해 정리하도록 하겠다.

상수의 위치는 최상단이다

상수, 클래스 변수, 인스턴스 변수, 생성자 순으로 위치 시키자.
(이때, 상수의 경우 static final, 변수 이름은 대문자)

공백 라인을 의미있게 사용하자

공백 라인은 문맥을 분리하는 부분에 사용하는 것이 좋다.
의미없이 무분별한 공백 라인은 사용하지 않는다.

스페이스도 고려하자

  • 괄호와 함께 사용할 때에는 스페이스로 구분되어야 한다.
    while (true) {
    	...
    }
  • 단, 메서드 이름과 메서드 변수를 나타내는 여는 괄호 사이에는 스페이스를 사용하지 말자
  • 콤마 이후에 빈 공간이 나타나는 게 좋다.
  • for 문에서 expression 사이에 공백을 사용하는 게 좋다.
	for (var i = 0; i < 10; i++)

if문을 사용할 땐, 항상 중괄호를 사용하자

지양해야할 코딩

if (condition)
	statement;
    
if (condition) 
	statement;
else
	statement;

지향해야할 코딩

if (condition) {
	statement;
}

if (condition) {
	statement;
} else {
	statement;
}

언젠가 발생할 수도 있는 개발자의 실수를 막을 수 있다.

심지어 실무에서 아래와 같은 코드를 본 경험이 있다.

if (condition) {
	statement;
    ...
    ...
} else statement;

위의 코드는 정상동작한다. 위의 코드를 함께 본 개발자는 else문이 있는 줄 몰랐다며..😱
중괄호의 중요성을 깨달은 코드이다. 😎

네이밍(이름 짓기)

객체지향 생활 체조 규칙 5: 줄여쓰지 않는다(축약 금지)
누구나 실은 클래스, 메서드, 또는 변수의 이름을 줄이려는 유혹에 곧잘 빠지곤 한다. 그런 유혹을 뿌리쳐라. 축약은 혼란을 야기하며, 더 큰 문제를 숨기는 경향 이 있다.
클래스와 메서드 이름을 한두 단어로 유지하려고 노력하고 문맥을 중복하는 이름을 자제하자.
클래스 이름이 Order라면 shipOrder라고 메서드 이름을 지을 필요가 없다.
짧게 ship()이라고 하면 클라이언트에서는 order.ship()라고 호출하며, 간결한 호출의 표현이 된다.

  • 읽기 좋은 이름을 사용하자.
  • 축약된 명칭을 사용하지 말자. (미래에는 축약형 단어를 이해할 수 없을 수 있다.)
  • 변수 이름이 변수가 표현하고 있는 것을 완벽하고 정확하게 설명해야 한다
  • 긍정적인 boolean 변수 이름을 사용하자.

누가 이름을 함부로 짓는가
Code Complete 2 내용 정리 글

final 키워드를 사용해 값 변경 막기

객체의 인스턴스 변수에 값이 변경되지 않는다면 final 키워드를 사용하자.

🤔 어떤 노력을 할 수 있는가 ?

좋은 이름 짓기 위한 연습 방법

  • JDK, Spring 프레임워크와 같이 유명한 오픈소스 코드를 많이 읽는다.
  • 동의어, 유사어 사전을 활용해 문맥에 맞는 이름을 찾으려 노력한다.
  • 구현하는 프로그래밍 도메인에 대한 지식을 쌓기 위해 노력한다. 도메인 지식이 높아질 수록 좋은 이름을 지을 수 있다.

참고

2개의 댓글

comment-user-thumbnail
2020년 5월 24일

프로그래밍 언어도 결국 언어 이고 특히나 영어 이기 때문에, 변수와 메소드의 네이밍에 대해서 좀 더 자연스러운 흐름이 되도록 하는게 조금 낯설고 어렵게 느껴질지도 모르겠습니다.
좋은 글 잘 읽었습니다. 감사합니다.

1개의 답글