Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- java의 정석
- Spring
- springboot
- Design Pattern
- 클린코드
- Adapater Pattern
- Design Patterns
- 1300번
- 2156번
- 11758번
- 10830번
- 코딩테스트
- 냄새와 휴리스틱
- 9장
- java
- 코딩 테스트
- 가장 긴 증가하는 부분 수열2
- 2206번
- 17장
- Dxerr.h
- SerialDate 리펙터링
- 11286번
- 1043번
- programmers
- 2166번
- 프로그래머스
- DxTrace
- BOJ
- 백준
- 자바의 정석
Archives
- Today
- Total
Don't give up!
[클린코드] 16장 SerialDate 리펙터링 본문
이 글은 로버트 마틴의 '클린 코드'를 읽고 TIL(Today I Learned)로써 정리한 내용을 기록하는 글입니다.
자세한 내용은 책을 통해 확인하실 수 있습니다.
알라딘: 클린 코드 Clean Code (aladin.co.kr)
SerialDate 리펙터링
이번 장은 JCommon 라이브러리의 SerialDate라는 클래스를 리펙터링하는 과정을 보여줍니다.
코드가 너무 방대하여 자세한 과정과 내용은 책을 통해 확인해주신다면 감사하겠습니다.
첫째, 돌려보자
- SerialDateTest라는 클래스는 단위 테스트 몇개를 포함하고 실패하는 테스트 케이스는 없다.
- 하지만 테스트 케이스를 훑어보니 모든 경우를 점검하지 않는다는 사실이 드러났다.
- 클래스를 철저히 이해하고 리펙터링하려면 훨씬 높은 테스트 커버리지가 필요하다.
- 모든 코드를 테스트할 수 있도록 테스트를 추가하고, 추가된 테스트로 인해 발생하는 버그들을 고쳐야 한다.
둘째, 고쳐보자
- 테스트 케이스를 작성하고 통과하면 클래스는 제대로 돈다고 믿을 수 있다.
- 이제부터는 클래스를 올바로 고치는 작업이 필요하다.
- 부모 클래스는 파생 클래스를 몰라야 바람직하다.
- 추상 메서들로 위임하는 정적 메서드는 SINGLETON, DECORATOR, ABSTRACT FACTORY 패턴 조합을 사용한다.
- 테스트 커버리지가 줄어들더라도 클래스 크기가 작아져서 테스트하지 않는 코드의 비중이 커져서 그럴 수 있다.
- 너무 사소한 코드는 테스트할 필요가 없다.
'개발서적 > 클린 코드' 카테고리의 다른 글
[클린코드] 17장 냄새와 휴리스틱 (0) | 2021.08.06 |
---|---|
[클린코드] JUnit 들여다보기 (0) | 2021.08.04 |
[클린코드] 14장 점진적인 개선 (0) | 2021.08.03 |