TDD 클린코드 with Java 16 기 1주차 회고

Patrick YOO·2023년 4월 7일

TDD

목록 보기
2/8
post-thumbnail

Good Point

  • 4개의 Step 중 첫번째 step 에 가장 중요한 구현을 진행하게 되어 진도와 미션 수행에 있어 순조롭게 진행되어가고 있다.
  • 오래 사용하지 않아 많이 까먹은 테스트 코드 문법에 대해 다시 상기 시키는 기회가 되어 좋은 부분이 많다

Bad Point

  • 아직 테스트 코드를 먼저 작성한후 코드를 구현하는 방식이 익숙하지 않다.

What I Learned And What were reviewed

private static int[] convertStringIntoArray(String text) {
	Matcher m = Pattern.compile(CUSTOM_SEPARATOR_REGEX).matcher(text);
}

Pattern.compile 이 실행될때 라이버러리 내부적으로 new Pattern(regex, 0);
라는 부분을 호출하도록 되어있다. 해당 객체가 싱글톤인지 아닌지 라이브러리 내부적으로 들여다 보는 습관을 가져야 함을 느겼고 위와같은 코드는

private static final Pattern CUSTOM_SEPARATOR_PATTERN = Pattern.compile(CUSTOM_SEPARATOR_REGEX);

이와같이 상수로 선언해서 사용하도록 수정되었다.

stream(m.group(2)
.split(m.group(1)))

위와같이 2 와 1이 무엇을 뜻하는지 파악하기 쉽지 않을 수 있다. 흔히 이와같은 코드를 매직넘버 라고 하는데 매직넘버란 코드래벨에서 하드코딩 되어있는 숫자를 말하며 이는 히스토리를 모르는 경우 파악하기 매우 어렵다

stream(m.group(BODY_INDEX).split(DELIMITER_INDEX)))

해당코드는 위와같이 수정되어 매직넘버를 삭제하고 primitive 타입을 한번 wrapping 해주었다.

if(...) return ...

위와 같이 한줄에 코드를 작성하지 말고

if(...) {
	return ...
}

아무리 짧은 if 문이라 할지라도 브라켓을 넣어주자.

profile
자유인을 꿈꾸는 개발자

0개의 댓글