우아한 테크코스에서 프리코스로 진행했던
자동차 경주게임을 페어프로그래밍을 통해
다시 코딩하고 1차 피드백을 받을 수 있었다.
13년부터 현업에 계시고 지금도 좋은 회사에 계신 분이
내 코푼 휴지같은 코드를 리뷰해주신다니 감계무량하다...😂
오늘 내가 배운 것은 다음과 같다.
자동차 게임
Presentational Component와 Container Compoent분리하기
ex) Component(Presentational)를 상속받는 Page(Container) 클래스를 만들어 Component와 차이를 둠
추후 메모리해제를 위해 클래스 객체를 변수에 담아두기
객체 내부의 데이터에 대해 외부 의존도가 높은 경우, 데이터 존재여부에 대해 검증하는 코드가 필요함
메소드에서 bad case를 early return하는 편이 가독성과 효율성 측면에서 좋다.
let의 남용은 금물
숫자를 상수화하고 해당 상수에 대해 다른 코더가 의문을 가질 수 있는 경우 개발자의 생각을 주석으로 입력하기
메소드 이름에서 목적어(무엇을)를 좀 더 정확히 할 것. (ex. createCarProcess -> createCarElement)
cypress
cypress는 import가 가능
cypress에서 랜덤 자체를 테스트하지말고 랜덤을 활용하는 함수를 테스트할 것.
ex) getRandomNumber(0,10) 테스트 (x)
getRandomNumber(0, i) 테스트 (o) => 인자가 바뀜에 따라 범위가 잘 수정되는지 함수의 동작을 확인할 수 있다.