[우아한테크세미나] tdd 리팩토링 정리
TDD 리팩토링 연습
1. 단위테스트 연습
- 내가 사용하는 API 사용법을 익히기 위한 학습테스트
-
어떻게 동작하는지 테스트 만들면서 연습 => 단위테스트, API 사용법을 익히게 됨
- INPUT, OUTPUT이 명확한 메소드부터 단위테스트 연습
2. TDD 연습
- 난이도가 낮거나 익숙한 문제로 시작, TDD 연습이 목적
- 웹, 모바일, UI, DB에 의존관계를 가지지않는 요구사항으로 연습
3. 메소드 분리 리팩토링
(depth 줄이기, else 없애기, indent 줄이기, 로컬변수 줄이기 등)
- 한번에 한 가지 명확하고 구체적인 목표로 진행. 극단적인 연습이 좋다. (step by step)
- ex) 메소드 라인 수 15라인 -> 10라인 줄이기
compose method
패턴 적용 (추상화)- 모든 원시값과 문자열을 포장한다.
- 클래스로 분리
- 메인 메소드가 없이 기능 구현이 완료 => TDD 완벽 습득
5. 의존관계 추가된 테스트
- 테스트하기 쉬운 코드와 어려운 코드를 보는 눈으로 어려운 부분을 쉬운 부분으로 분리
객체지향 생활체조 원칙
- 한 메서드에 오직 한 단계의 들여쓰기만 한다.
else
예약어를 쓰지 않는다.- 모든 원시값과 문자열을 포함한다.
- 한 줄에 점을 하나만 찍는다.
- 줄여쓰지 않는다.(축약금지)
- 모든 엔티티를 작게 유지한다.
- 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
- 일급 콜랙션을 쓴다.
- 게터/세터/프로퍼티를 쓰지 않는다.
메소드의 인상적인 인자 개수는 0개
다. 되도록 3개 이상은 쓰지 말자.
리더로
1:1 면담에서 한 가지만 기억
- ‘어떻게 하면 될까?’, ‘너라면 어떻게 할 것 같아?’ 반문
- 한 가지에 집중. 선택한 Practice로 변화를 완료함으로써 작은 성공을 맛본다.
- 면담,회고 -> pratice 선택 -> 한 가지에 집중 -> 작은 성공 사이클
작은 성공을 쌓아 큰 성공
- 장난감 프로젝트로 TDD, 리팩토링 연습해 작은 성공 맛보기
- 내가 구현하는 코드에 한해 TDD, 리팩토링 적용해 작은 성공 맛보기
- 동료에게 짝 프로그래밍으로 TDD. 리팩토링 경험 전파해 작은 성공 맛보기
- 같이 일하는 주변 사람들에게 변화를 만들어 큰 성공 맛보기
가장 필요한 것은 가보지 않은 길에 꾸준히 도전할 수 있는 용기