# 닌자 코드 피하기

김병민·2022년 6월 26일
0

TIL

목록 보기
60/68

닌자 코드

JavascriptInfo를 읽던 도중 닌자코드에 대해 알게되었다. 정말 우습게도 나는 이 글을보며 어쩌면 내가 잘하고 있는 것일 수도라고 생각했다.

사실 닌자코드는 이렇게만 작성하지 않으면 멋진 개발자(?)가 될 수 있다라고 알려주는 글이다. 하하

나는 닌자코드에서 알려준 방법과 정반대의 행동을 통해 나쁜 개발자(?)가 되어보도록 하겠다.

코드 짧게 쓰기

i = i ? i < 0 ? Math.max(0, len + i) : i : 0;

글에서는 가능한 코드를 짧게 작성하여 얼마나 똑똑한 사람인지를 보여주라고 했지만
나는 바보같은 사람이기에 코드를 길게 작성하도록 해보겠다.

let i: number = doSomeThing()
if(i){
	if(i<0){
    	i = Math.max(0, len + i)
    }else{
    	i = i
    }
}else{
	i = 0
}

글자 하나만 사용하기

닌자는 글자 하나만 사용해서 변수 이름을 정한다고 합니다. 하지만 저는 알파벳을 잘 모르기에 최대한 단어로 사용을 해봅시다.

let data: number = doSomeThing() // change variable name
if(i){
	if(i<0){
    	i = Math.max(0, len + i)
    }else{
    	i = i
    }
}else{
	i = 0
}

약어 사용하기

닌자는 팀에 한 글자 짜리 변수나 모호한 변수명을 사용하지 못하게 하는 제약이 있다면 약어를 써야한다고 합니다. 하지만 저는 눈치가 없는 사람이니깐 길게 써봅시다.

  • lst => list
  • ua => userAgent
  • brsr => brower

포괄적인 명사 사용하기

변수 명을 정할 때는 data,obj,item과 같이 다양한 개념을 포괄할 수 있는 명사를 사용하라고 하지만 저는 바보이기에 ... 이를 기억하지 못합니다. 그래서 보다 정확하게 정하도록 하겠습니다.

const fetchData // Not data
const mainTitle // Not str
const userAge // Not num

//Do not use names data1, item2, elem6

철자가 유사한 단어 사용하기

주의력 깊은 개발자만 닌자가 작성한 코드를 읽을 자격이 있다고하지만 전 난독증이 있기에 자격이 없을 것 같습니다.

const date 
const data 
// wf ... 

동의어 사용하기

동의어를 지속적으로 사용해서 풍부한 어휘력을 자랑해야한다고 하지만 저는 어릴적 책을 많이 읽지 않았기 때문에 어휘력이 형편없습니다.

display,show,render,paint번갈아가며 사용하지 맙시다.

변수 이름을 재사용하기

개발자 암기력 증진을 위해 함수나 반복문 중간에 변수에 새로운, 중복된 값을 할당해야한다고 합니다. 하지만 저는 구제불가능한 암기력을 갖고 있기에 포기합시다!

function ninjaFunction(elem) {
  // 매개변수로 받아온 elem을 이용한 코드
	// Don't named duplicated variable like "elem = clone(elem)"
    
  const cloneElem = clone(elem);

  // elem의 복제(clone)본을 이용한 코드
}

재미로 언더스코어와 달러사인 사용하기

닌자는 중간중간 장난으로 변수명 앞에 언더스코어를 사용한다고한다. 하지만 나는 노잼인 사람이기에 그런 장난은 쓰지않고 필요할 때만 언더스코어를 사용해야겠다.

//물론 $를 알파벳 문자와 함께 사용하는 것도 가능하다.
function $take(id) {
    return document.getElementById(id);
}
const divId = $take(myFirstDiv);
const doSomeThing = (examplePropOne, _neverUseProp) =>{
	console.log(examplePropsOne)
}

underscore(_) , doller($)
언더스코어는 사용하지 않는 변수나 프라이빗한 특성이 적용되어야하는 변수나 함수 앞에 사용을 멍시
달러사인은 html 요소의 id를 알아내는 함수 앞이나 html 요소 변수에 사용

과장 형용사 사용하기

형용사를 사용하여 변수가 얼마나 멋진지를 표현하는 것이 멋진 개발자라고 알려주지만 나는 부끄러우니깐 .. 사용을 자제해본다.

외부 변수 엎어쓰기

변수 이름 짓는데 골머리를 썩이지 말고 동일한 변수를 사용하라하지만 역시 나는 생각이 많은 아이인가보다 하하

let user = authenticateUser();

function render() {
  ...
  ...함수 길이가 긺...
  ...
  ... // <-- 개발자는 user와 관련된 이 부분의 코드를 수정해야 함
  ...
}

확인을 위한 코드에 기능을 추가하자

is...,check..., find... 등과 같은 함수에 값 변경이 있는 기능을 추가하여 동료에게 깜짝 선물을 제공하자 하지만 나는 서프라이즈 혐오자이기에 지양하도록 하자

함수에 다양한 기능 넣기

유요한 이메일 주소인지 확인하는 validateEmail(email)함수에 유효한 이메인이지 확인하는 기능 말고도 에러메시지를 띄운다든지 다시 입력해달라는 창을 띄운다든지 하는 기능을 추가해야한다고 한다. 그렇게 해야 코드 재사용도 방지한다고 한다. 하지만 나는 코드 재사용을 좋아하는 보이 이기에 따로따로 분류하여 작성하도록 해보자

profile
I'm beginner

0개의 댓글