코드리뷰를 받고 앞으로 신경써서 개션해야 될 사항들을 정리했다.
클래성의 메서드 혹은 prototype의 메서드 중에 외부의 공개되는 것과 내부에서만 사용되는 것을 구분하면 좋다.
내부에서만 사용하는 메서드는 _
로 시작하는 네이밍 컨벤션을 많이 활용한다. 클래스 문법은 priviat fields문법을 알아보자. mdn_private class fields
forEach vs reduce
reduce: 리스트를 순회하며 값을 만들어 내는 일에 적합한 함수
forEach: 각각의 리스트 아이템에 대해 어떤 부수 효과(side effect)를 발생시키고자 할 때 적합한 함수
일반적으로 debounce 함수는 함수를 반환되게 구현돼 있다. lodash_debounce를 참고해서 구현해보자.
setTimeout으로 함수를 일정시간 주기로 반복할 수 있다. 만약 async, await를 사용한다면 한눈에 이해가 쉬운 재귀형태로 위와 같은 기능을 구현할 수 있다.
reduce를 사용할 때 reduce의 콜백함수 내에 모든 내용을 다 담는 것은 좋지 않다. 보조함수를 map,filter등을 이용해서 나눈다면 더 좋을 것이다.
es6부터 method를 shorthand로 쓸 수 있다.
ex)
const person = {
sayHello : function () {console.log('hello')}
}
// ==>
const person = {
sayHello () {console.log('hello')}
}
조건에 부합할 경우 빠르게 return을 처리시키고 else를 줄이게 되면 가독성 및 코드의 중첩을 줄이는데 도움이 된다.
고차함수의 콜백함수에서 인자의 네이밍도 신경을 써주어야 한다.