닌자 코드
닌자 코드
유지보수 담당자를 어렵게 하게 위해 독특한 코드들 사용
- 코드 짧게 쓰기
갖은 지엽적 문법 지식 동원해 최대한 짧게 코드 빌드 다른 개발자들이 해석하는데 시간 들어감
- 글자 하나만 사용
변수를 한글자로 만들거나 일반적으로 쓰지 않는 단어 사용
- 약어 사용
모든 걸 줄임
- 포괄적인 명사
네모가 아주 크면 마치 모서리가 없는 것처럼 보이며, 큰 그릇은 천천히 만들어지고, 소리가 너무 크면 들리지 않는 것 같고, 거대한 형상은 형태가 없다.
무언가 명명 시 포괄적인 단어 사용
-
Data, Value
-
str,num 등 자료형과 연관된 변수
-
숫자 붙이기
- 철자 유사한 단어 사용
유사한 철자 사용으로 주의력 떨어지는 개발자 거르기 가능
- 동의어 사용
유사한 뜻을 가진 단어 여러개 명명 같은 기능을 가진 함수라도 각기 다른 접두어 사용 중대하게 다른 기능을 가진 함수라도 같은 접두어 사용
- 이름 재사용 하기
변수 선언은 중요할 때만 활용 새로운 값은 기존의 값에 할당 함수나 반복문에서 할당 값 은밀히 변경
- 재미로 언더스코어 할당
코드 가독성 하락 동료 개발자들의 파악 시간 증가
- 과장 형용사 사용
특별한 명명인것 처럼 포장
- 외부 변수
빛 속에선 어둠을 볼 수 없고, 어둠 속에선 빛나는 곳에 있는 모든 것을 볼 수 있습니다.
함수 내, 외부에 동일한 변수명 사용
- 부작용이 있는 코드
본래 기능을 넘어선 ‘유용한’ 기능 예상치 않은 결과 return
- 함수에 다양한 기능 넣기
함수 기능 확장해서 함수가 할 수 있는 동작 이름에 한정짓지 않기 함수 하나에 여러 기능 넣어 코드 재사용 방지
요약
-
닌자 코드는 유지 보수 담당자를 어렵게 하는 코드로 하지 말아야 할 것들.
-
코드 짧게 쓰기
-
변수에 글자 하나 사용
-
약어 사용
-
변수에 포괄적인 명사 사용
-
철자 유사한 단어 사용
-
동의어 사용
-
변수 재사용
-
재미로 언더스코어 할당
-
과장 형용사 사용
-
함수 내/외부 동일한 변수명 사용
-
부작용 있는 코드
-
함수에 다양한 기능 넣기