
코드스타일링 📖
이미 많은 개발자들이 boolean이 할당된 변수 이름을 is 혹은 are로 사용
"케리는 강아지입니다"라는 사실을 코드로 가장 쉽게 표현하는 방법이기 때문입니다. "강아지입니다"가 참(true)인지 거짓(false)인지 명확하게 보여주고 있죠.
let isDog = true;
let 강아지입니다 = true;
Good:
let areEqual = true;
Bad:
let pass = true;
- HTML과 구분하기 위해 문자열 표기 시 작은 따옴표 권장
Good:
let dog = 'dog';
let cat = 'cat';
Acceptable:
let dog = "dog";
let cat = "cat";
// 큰 따옴표도 괜찮습니다.
Bad:
let dog = 'dog';
let cat = "cat";
// 띄어쓰기와 tab과 같이 혼용은 최악의 코드 스타일입니다.
Good:
let multilineText = `this is line one
this is line two
this is line three`;
// 엔터가 명확하게 보입니다.
Bad:
let multilineText = 'this is line one' + '\n' + 'this is line two' + '\n' + 'this is line three';
// 엔터가 명확하게 보이지 않습니다.
- 중괄호로 끝나는 Statement는 이미 종료가 암시되어 있기에, 세미콜론을 사용하지 않는다.
Good:
if (condition) {
response();
}
Bad:
if (condition) {
response();
};
- if, for, while 구문의 끝처럼 보일지라도 코드 끝에 세미콜론을 써야한다.
Good:
let greet = function () {
alert('hi');
};
Bad:
let greet = function () {
alert('hi');
}
엄격하지 않은 동치 연산(loose equality, ==, !=)는 엄밀하지 않기 때문에 반드시 엄격한 동치 연산(strict equality, ===, !==)을 사용
3항 연산자(?)는 간결하고 가독성이 좋은 경우만 사용 (장황한 경우 가독성이 떨어진다)
not 연산자(!)는 바로 앞에 붙여서 사용합니다.
Good:
if (!isEqual) {
Bad:
if (! isEqual) {
코드는 뜻이 분명하고 실행 되는 한, 되도록 짧게
부정의 의미가 명확한 곳에만 NOT 연산자를 사용
Good:
if(equalSizes && equalValues) {
// 사이즈가 같고, 값이 같은 경우
} else {
}
Bad:
if(!equalSizes || !equalValues) {
// 사이즈가 같지 않거나 값이 값지 않은 경우
} else {
}
// 이 조건문은 불필요하게 조건에 대해 고민을 해야 합니다.
- Boolean으로 평가되는 표현문은 바로 return
Good:
return charSet.size > text.length;
Bad:
if(charSet.size < text.length) {
return false;
}
return true;
// 비교문은 무조건 true 혹은 false로 평가되기 때문에 장황하게 조건문을 작성하지 않습니다.
한 번에 더 많은 코드를 읽기 위해서, 줄 바꿈은 최소로 사용
들여쓰기는 일관성있게, 최소화하여 사용
같은 라인에 값을 보기 위해 하는 들여쓰기는 지양
Good:
let firstItem = getFirst();
let secondItem = getSecond();
let thirteenthItem = getThirteenth();
Bad:
let firstItem = getFirst();
let secondItem = getSecond();
let thirteenthItem = getThirteenth();
// 불필요한 들여쓰기가 너무 많아졌습니다.
- 콤마(,) 사이는 한 칸 띄어씁니다.
- 연산자 사이는 한 칸 띄어씁니다.
Good:
'Failed [' + testName + ']'...
Good:
if(actual === expected){
// action
} else {
// alternate action
}
Bad:
'Failed ['+testName+']'...
Bad:
if(actual===expected){
// action
}else{
// alternate action
}
- 꼭 필요한 경우에만 작성
- 주석을 적기 전에, 변수 이름과 구조로 코드의 목적이 명확히 표현되면 주석을 적을 필요가 없다
- 주석으로 코드의 작동을 설명하는 것은 지양한다. 코드를 보고 바로 이해할 수 있을 만큼 가독성이 좋게 코드 작성
- 공부 목적으로 활용하는 것은 좋으나, 숙달되어 이해할 수 있는 코드에 주석을 다는 것은 가독성이 떨어지기에 점차 줄여간다.
- JavaScript에서는 변수의 이름을 지정할 때 'Camel Casing'으로 지정, 이것은 Ruby 같은 다른 프로그래밍 언어에서 사용하는 'Snake Casing'과 다릅니다.
Good:
let camelCased = 'Used in javascript';
Bad:
let snake_cased = 'Used in other languages';
JavaScript에서 '뱀 모양'을 사용하는 경우는, 상수 이름을 지을 때입니다.
const MAX_ITEMS_IN_QUEUE = 100;