모던 JavaScript 튜토리얼을 따라가면서 정리합니다.
3.4. 닌자 코드
다음과 같은 코드를 작성하는 것은 지양하자. 유지보수가 어렵기 때문이다.
코드 가능한 짧게 쓰기
글자 하나만 사용하기
그 글자가 무엇을 의미하는 지 해석하기 어렵다.
약어 사용하기
포괄적인 명사 사용하기
- data, value 등과 같은 아무 의미 없는 변수명 사용하기
- str, num과 같이 자료형과 연관된 변수명 사용하기: 자료형 파악하는 것은 디버깅 툴을 사용하면 되지만 변수의 의미는 파악이 쉽지 않다.
- data1, item2, elem3 처럼 옆에 숫자를 붙이기
철자가 유사한 단어 사용하기
- date와 data같이 유사한 철자를 가진 단어를 조합해 사용하기
동의어 사용하기: display, show, renter, paint, print 등
이름 재사용하기
- 변수에 현재 어떤 값이 들어가있는지, 값의 유래는 어디인지 쉽게 파악하지 못한다.
- 특히 함수나 반복문 중간에서 할당 값을 바꾸면 더 파악하기 어렵다.
재미로 언더스코어 사용하기
과장 형용사 사용하기
외부 변수 덮어쓰기: 함수 내부와 외부에 동일한 이름을 가진 변수를 선언해 사용하기
부작용이 있는 코드 작성하기
isReady
,checkPermission
,findTags
같은 함수는 단순 확인용으로 사용되고 외부의 무언가를 바꾸진 않는다. 부작용이 없는 함수이다. 이런 함수에 본래 기능을 넘어선 유용한 기능을 더해주거나 예상치 않은 결과를 반환한다(확인여부와 다른 정보를 함께 엮은 객체를 반환)
함수에 다양한 기능 넣기: 함수 하나에 여러 기능을 욱여넣으면 코드 재사용이 어려워진다.