<aside>
💡
2주차 코드 리뷰를 하면서 배운 점
</aside>
- map, reduce 등을 코드의 길이를 간결하게 한다.
- 파일 구조를 따로 작성하여 미리 설계를 해둔다.
- test 같은 경우 하나의 디렉토리로
- util : 외부 라이브러리를 사용하거나 공통된 부분을 작업할 경우
- 검증하는 함수 구현, 문자열 처리, 에러와 관련된 부분
- constant : 에러 메시지나 그 외의 문구를 상수화해서 따로 모아 놓으면 좋음
- test 코드를 먼저 작성한다. (예외 사항에 대해서 생각해 볼 수가 있음)
- js private 필드 (’#’)를 이용하여 객체의 메서드를 은닉화 시켜 코드를 구현한다.
<aside>
💡
공통 피드백
</aside>
- readme 파일을 상세히 작성한다.
- 기능 목록을 작성할 때 예외 상황도 고려해서 작성해본다.
- 작은 단위의 테스트부터 만든다.
- 값을 하드 코딩 하지 않고 상수를 정의하고 의미 있는 이름을 부여하여 해당 값이 어떤 역할을 하는지 명확히 드러낸다.
- class 코딩 컨벤션
<aside>
💡
프로그래밍 요구사항
</aside>
- 함수의 길이가 15라인을 넘어가지 않도록 구현
- else 지양
- if 문을 이용한 반환을 사용하면 else를 사용하지 않아도 됨
- 구현한 기능에 대한 단위 테스트를 작성한다.
- UI로직은 제외
- 단위 테스트는 LottoTest를 이용하여 선제 학습 후 진행
- Lotto 클래스
- 제공된
Lotto
클래스를 사용하여 구현해야 한다.
Lotto
에 numbers
이외의 필드(인스턴스 변수)를 추가할 수 없다.
numbers
의 접근 제어자인 #
은 변경할 수 없다.
Lotto
의 패키지를 변경할 수 있다.
<aside>
💡
학습 목표
</aside>
- 클래스와 함수에 대한 단위 테스트를 통해 정확하게 작동하는 것을 확인해야 함
- 관련 함수를 묶고 클래스를 만들어 객체들이 협력하여 하나의 큰 기능을 수행하도록 함