🧮 계산기 과제 피드백 공유
인창
@DisplayName
사용하는 것을 고려하기
- Assertions 호출 보다는 static import 사용하기
- assertJ 사용하기
- given - when - then 으로 구분하여 작성하기
- 여러 입력값에 대한 검증
@Parameterized
로 구현하기
- 명시적으로 변수 이름 작성하기
- 구현체
ArrayDeque<Double>
보다Deque<Double>
사용하기
- enum, static 필드 선언으로 의미를 구체화 하기
용수
- 의미 있는 변수명 사용하기
- 인터페이스를 사용하는 이유를 알고 상황에 맞게 사용하기
- 구현체인 HashMap 보다 인터페이스인 Map으로 선언하기
- String, StringBuilder(Buffer) 사용 의도 파악하기
- 테스트 코드에
@DisplayName
사용하여 테스트 정의하기
@Parameterized
사용으로 테스트에 중복되는 값 고려하기
- if, else 중첩을 간단하게 작성하기
윤오
- while(true)와 같이 무한루프를 돌게 하지 않도록
- 불변 객체는 final을 쓰도록 습관 들이기
- for if else를 역할을 나눠서 1회의 들여쓰기로 해결하기
- 구현체를 쓰기보다는 추상체를 사용하기
- 동사형 메소드 네이밍 사용하기
- Stack 쓰지 말고 Deque 쓰기
진형
- private 메서드는 클래스의 최하단으로
- Test에 주석보다는 @DisplayName으로
- Junit 보다는 가독성이 좋은 AssertJ로
- Assertions는 static import로
- @ParameterizedTest로 코드 단순화
- 명확한 변수명 메소드명 사용
- 변수명은 되도록 명사로
- 변경가능성이 있는지 고려하여 인터페이스 사용
- Test에 별도의 테스트 전용 함수를 구현하는 것은 지양
- for if else는 최대한 간결하게 작성하도록 고려
접근 지정자는 확실히
인후 (훈 아이콘 창시자)
- 네이밍 스페이스가 겹치지 않으면 static import로 바꾸기
- 유틸 클래스 private 생성자로 바꾸기
- 문자열을 외부 파일로 분리해서 가져오기
- Stack 쓰지 말고 Deque 쓰기
- 예외처리 묶어서 하는법
- Spring을 쓴다면 @ControllerAdvice
- given when then 쓰기 애매한 경우
============ 1 번============ // given - Empty // when - TODO: Logic // then - TODO: Logic ============ 2 번 ============ // given - TODO: Logic // when & then - TODO: Logic