code convention을 지키는 것을 감히 개발자에게 가장 기본이라고 말하고싶다.
사실 신입 개발자일 때, 공감하지 못했던 내용이다. (code convention이 뭔지도 몰랐다고 해야될까 ?)
신규 프로젝트를 진행하면서, 함께하는 개발자가 나서서 code convention을 맞추자고했다. 나는 그래서 처음으로 code convention다운 convention을 지키기 시작했다.
code convention을 지키면서 개인적으로 느꼈던 장점은 두 가지다.
1. 코드의 가독성이 좋아진다.
2. 코드 변경 사항이 있을 때, 쓸모없는 변경점이 잡히지 않는다.
이 두가지만으로도 꼭 지키고 싶어지고 지켜야만 한다고 생각되지 않는가? 😉
여기서 꼭 말하고 싶은건 두가지이다.
1. code convention을 지키자.
2. code convention을 함께하는 개발자와 맞추자. (개인이 지켜도 함께하지 않으면 무의미하다고 꼭 말하고싶다.)
아래의 내용은 nextstep의 cleancode 8기를 수강하며 학습한 convention과 꼭 알아야할 convention에 대해 정리하도록 하겠다.
상수, 클래스 변수, 인스턴스 변수, 생성자 순으로 위치 시키자.
(이때, 상수의 경우 static final
, 변수 이름은 대문자)
공백 라인은 문맥을 분리하는 부분에 사용하는 것이 좋다.
의미없이 무분별한 공백 라인은 사용하지 않는다.
while (true) {
...
}
for (var i = 0; i < 10; i++)
지양해야할 코딩
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()라고 호출하며, 간결한 호출의 표현이 된다.
누가 이름을 함부로 짓는가
Code Complete 2 내용 정리 글
객체의 인스턴스 변수에 값이 변경되지 않는다면 final
키워드를 사용하자.
프로그래밍 언어도 결국 언어 이고 특히나 영어 이기 때문에, 변수와 메소드의 네이밍에 대해서 좀 더 자연스러운 흐름이 되도록 하는게 조금 낯설고 어렵게 느껴질지도 모르겠습니다.
좋은 글 잘 읽었습니다. 감사합니다.