닌자코드 파트 링크 : https://ko.javascript.info/ninja-code
닌자코드라는 말을 보고 너무 궁금했다... 닌자코드라니 여기저기 숨어서 기능을 하는 코든가?? 라는 생각을 했는데... 굉장한 반어법을 담고 있는 파트였다.
닌자코드란 무림 고수인 닌자마냥 그럴싸해 보이는 좋지 않은 스타일의 코드를 의미한다.
이 파트는 전부 이런 코드 스타일을 사용하라고 안내하고 있지만 쓰지 말라는 엄청난 반어법이다...^^
코드 짧게 쓰기
a, b 처럼 글자 하나만을 사용하기.
약어 사용하기 ex) list 를 lst 라고 사용.
포괄적인 명사 사용 ex) data, obj, value, item, elem...
철자가 유사한 단어를 조합하여 사용하기 ex) dateData
동의어 혼용. 어디에는 show, 어디에는 display, 어디에는 print 라고 사용.
이름 재사용
언더스코어(_) 남발
super~, mega~ 같은 과장 형용사 사용
함수 내외부에 같은 이름으로 변수 선언하기 (scope를 잘 알고 있으면 다행이지만 보는 입장에서 참... 아찔하다 ^^)
isReady() 같은 누가 봐도 어떤 상태를 확인 하는 함수에 다른 기능을 부여하거나 전혀 예상하지 못한 (isReady 라면 결과가 boolean 값이 예상된다) 결과를 반환하도록 선언.
함수 하나에 여러 기능을 욱여넣기.
등의 스타일이 닌자코드에 속한다.