TDD, 클린 코드 with Java 18기: 자동차 경주-학습테스트, 문자열 계산기

yshjft·2024년 5월 8일
0

자동차 경주-학습테스트, 문자열 계산기

미션하며 정리한 내용

👨‍💻 paramterized test

@Nested@Displayname을 함께 사용하는데 @Displayname의 설명이 제대로 나오지 않는다면 intellij의 아래 설정을 확인해봐야 한다.


👨‍💻 git rebase

git 히스토리를 아주 깔끔하게 정리할 수 있는 방법으로 특정 브랜치의 base를 옮기는 방식입니다.(base를 이동하여 병합하는 방식)


👨‍💻 commit 메시지 수정

가장 최근 commit 메시지 수정

git commit --amend

다른 경우는 아래 링크 참고
[git] 커밋 메세지 수정하기 (changing commit message)

미션을 진행하면서 사용했던 커밋 메시지 수정 방법
저는 그냥 인텔리제이를 사용했습니다...😅 (편한게 최고👍)


👨‍💻 @NullAndEmptySource

@ParameterizedTest@NullAndEmptySource를 이용하여 쉽게 null“”를 테스트 할 수 있습니다.


👨‍💻 stream

mapToInt
IntStream으로 변환해주는 메서드

Arrays.stream(numbers)
	.mapToInt(Integer::parseInt)
    .toArray();

reduce
stream의 요소들을 하나의 데이터로 만드는 작업을 수행

Arrays.stream(numbers)
    .reduce(0, (sum, number) -> sum + number);


리뷰 내용

🤔 리뷰 링크

자동차 경주: 2단계 문자열 덧셈 계산기 #5267


🤔 TDD를 하던 중 개발 요건에 변경이 생긴다면?

질문

TDD관련 질문입니다. 개발을 하다 보면 여러 이유로 요건이 추가되거나 변경될 수 있을거 같습니다.
그러면 이러한 경우마다 “로직 개발 중지 → 테스트 코드 추가 및 수정 → 로직 개발 재개” 사이클을 타게 되는 건가요?

리뷰어

  • 쉽지는 않지만 요건 상의 변동이 있는 로직 개발을 중단하고 테스트 코드 부터 작성하는게 맞다.

🤔 Stream 메서드 내부에서 예외 처리를 해도 괜찮을까?

질문

현재 음수를 전달하는 경우 RuntimeException 예외 발생을 stream.reduce() 내부에서 처리하고 있습니다. 
이와 같이 stream 연산자 내에서 예외를 발생시켜도 괜찮을까요?

리뷰어

  • stream 연산자 내에서 예외를 처리해도 큰 문제는 없다.
  • 다만 RuntimeException은 너무나 포괄적이니 좀 더 구체적이도록 새로운 Exception을 정의해보는건 어떨지...

🤔 삼항 연산자 사용을 유의하라

리뷰어

  • 삼항 연산자는 단순히 값을 할당하는 경우 또는 값이 한번에 유추되는 경우 사용하는게 좋다.
  • 삼항 연산자에서 연산이 이루어진다면 가독성이 너무나 떨어져서 읽기 힘들다. 이런 경우 차라리 if를 사용하자.

🤔 매직 넘버를 조심하자

리뷰어

  • 위의 코드에서 1과 2의 의미를 쉽게 파악할 수 없다.
  • 이와 같이 코드에서 직접 사용되는 의미가 명확하지 않은 숫자값이 매직 넘버이다.
  • 매직 넘버는 가독성을 안좋게 만들기 때문에 명확히 의미를 파악할 수 있는 상수로 치환하자.
  • 자바 리팩토링(Java Refactoring) - 매직 넘버 치환

🤔 stream 사용을 주의하자

리뷰어

profile
꾸준히 나아가자 🐢

0개의 댓글