모던 javascript 튜토리얼

닌자 코드

crab. 2022. 6. 18. 09:09

https://ko.javascript.info/ninja-code

 

닌자 코드

 

ko.javascript.info

이 글은 반어법입니다.


  • 닌자라 불리던 전설 속 개발자들은 유지보수 담당 개발자를 혹독하게 훈련하고자 (아래에서 소개해 드릴) 다양한 편법을 사용하곤 했습니다.
  • 구루 급의 코드 리뷰 전문가들은 테스트 코드에서 이런 편법을 발견하면 박수갈채를 보내곤 했죠.
  • 어떨 때는 초보 개발자가 닌자보다 더 적극적으로 나서서 이런 편법을 사용하곤 합니다.
  • 닌자가 사용하던 편법을 잘 살펴보시고, 자신은 닌자인지, 코드 리뷰어인지, 초보 개발자인지 판단해 보시기 바랍니다.

코드 짧게 쓰기

  • 가능한 한 코드를 짧게 써서, 당신이 얼마나 똑똑한 사람인지 보여주십시오.
  • 지엽적인 문법 지식 등을 총동원하면 코드 양을 획기적으로 줄일 수 있습니다.
  • 조건부 연산자 '?'를 사용한 예시를 살펴봅시다.
i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
  • 멋지지 않나요? 이렇게 코드를 작성해 놓으면 코드를 접하는 다른 개발자는 아주 즐거운 시간을 보낼겁니다.
  • i가 나타내는 게 뭔지 파악하는데 꽤 많은 시간을 소모하고, 결국엔 답을 찾지 못해 당신을 찾아올 겁니다.
  • 그럼 어깨를 한번 으쓱이면서 이렇게 말해주세요.
  • 코드를 길게 작성하는 것보단 짧게 작성하는 게 일을 잘하는 비결이라고요. 닌자가 되는 길로 안내해 줍시다.

글자 하나만 사용하기

  • 글자 하나만 사용해서 변수 이름을 지읍시다. a, b, c처럼 말이죠.
  • 변수 이름이 짧아지면 무림 고수가 숲속 깊은 곳에 몸을 숨기는 것처럼 변수를 코드 속에 숨길 수 있습니다.
  • 그 누구도 변수를 찾을 수 없게 되죠.
  • 코드 에디터의 "검색"기능도 통하지 않습니다. 어렵사리 변수가 정의된 곳을 찾더라도 변수 a 나 b가 무엇을 의미하는지 절대 "해석"할 수 없게 됩니다.
  • 남들이 잘 사용하지 않는 변수를 반복문에서 쓰면 아주 멋져 보입니다.
  • 특히나 반복문이 한, 두 페이지를 차지할 정도로 길면 이런 편법이 더 빛을 발하죠(반복문을 가능한 한 길게 작성하시는 것도 닌자가 되는 훈련 중 하나입니다).

약어 사용하기

  • 팀에 한 글자 짜리 변수나 모호한 변수명을 사용하지 못하게 하는 제약이 있다면 약어를 쓰는 기지를 발휘하세요. 변수명은 짧을수록 좋으니까요.
  • 모든 걸 줄여서 당신의 코드를 읽을 가치가 있는 직감이 뛰어난 개발자만 유지보수를 담당 할 수 있게 해 놓읍시다.

포괄적인 명사 사용하기

  • str, num 같이 자료형과 연관된 변수명을 사용하세요.
    • 이렇게 변수명을 만들면 누군가 당신의 코드를 봤을 때, 어떤 것도 유추할 수 없게 됩니다! 작성자 당신만 자료형 정보를 보고 어떤 값이 저장될지 유추 할 수 있죠.
    • 그 누구도 해석할 수 없는 변수가 만들어졌습니다. 목표를 달성했네요!
  • 새로운 변수명이 더는 떠오르지 않는다면 어떻게 해야 할까요?
    • data1, item2, elem5 처럼 옆에 숫자를 붙여주면 됩니다.

재미로 언더스코어 사용하기

  • _name이나 __value처럼 변수명 앞에 _나 __(언더스코어, 밑줄 표시)을 붙입시다.
  • 코드 작성자만 언더스코어가 무엇을 의미를 알게 해도 좋고, 장난으로 붙이거나 의미를 계속 바꿔가면서 붙이는 건 더 좋습니다.
  • 똑똑한 닌자라면 코드 한 영역에 밑줄 표시를 몰아서 쓰고, 다른 곳에서는 쓰지 않는 트릭을 쓰기도 합니다.
    • 이렇게 하면 코드가 에러에 취약해지는데, 다른 개발자를 훈련하기엔 이만한 방법이 없습니다.

'모던 javascript 튜토리얼' 카테고리의 다른 글

폴리필  (0) 2022.06.21
테스트 자동화와 Mocha  (0) 2022.06.20
주석  (0) 2022.06.17
코딩 스타일  (0) 2022.06.16
Chrome으로 디버깅하기  (0) 2022.06.15