프론트엔드 데브코스 5기 TIL 9 - 코드리뷰

김영현·2023년 10월 5일
0

TIL

목록 보기
10/129

과제를 제출했었는데, 코드리뷰를 받았다.
과제는
1. 이진트리 전위, 중위, 후위 순회 구현
2. 트라이로 문자열 자동완성 구현

리뷰를 받고 리팩토링하며 배울때 깨달은 점들을 써보자.

curly-rule

원래 한줄짜리 조건문은 중괄호를 생략해도된다

if(isTrue) return "hi";

사람의 실수는 언제나 있을 수 있으니 한줄도 중괄호로 감싸는 규칙이다.

if(isTrue){
	return "hi"
}

오케이 인정


재귀함수 리팩토링

  preorder() {
    let current = this.root;
    function traverse(current) {
      if (current.left) traverse(current.left);
      if (current.right) traverse(current.right);
    }
    traverse(current);
    return visited;
  }

재귀함수 로직을 항상 생각하기 어려워, 내부의 헬퍼함수를 구현해서 사용했는데 이번에야말로 내부함수 없이 재귀로 리팩토링 해보았다.

  preorder(current = this.root, visited = []) {
    visited.push(current.value);
    if (current.left) this.preorder(current.left, visited);
    if (current.right) this.preorder(current.right, visited);
    return visited;
  }

보기 한결 낫군.

내부 헬퍼함수 사용할 시

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields

private class field라는 걸 알려주셨다.
쉽게 말해, 인스턴스에서는 사용할 수 없는 기능이란 거지.
은닉화가 되어있는 필드다.
static field랑 뭐가 다른거지?
=> 정적 메소드는 클래스 자체에 추가되어 new연산자 없이 호출. private 메소드는 바깥에서 아예 호출 불가능.

그렇고만!


EOF

End Of File의 약자다.
파일의 끝을 나타내며, 소스로부터 더 읽어올 데이터가 없다는걸 말한다는데.
멘토님이 EOF를 챙기라고 하셨다.
으잉?
=> 정해놓은 로직과, 테스트했던 코드를 구분하라는 의미같다. 나중에 여쭤봐야겠다.

profile
모르는 것을 모른다고 하기

0개의 댓글