Enviar pesquisa
Carregar
Cleancode ch16 serialdate_refactoring
•
1 gostou
•
491 visualizações
Kyungryul KIM
Seguir
Tecnologia
Vista de apresentação de diapositivos
Denunciar
Compartilhar
Vista de apresentação de diapositivos
Denunciar
Compartilhar
1 de 27
Recomendados
Lambda 란 무엇인가
Lambda 란 무엇인가
Vong Sik Kong
Java 8 api :: lambda 이용하기
Java 8 api :: lambda 이용하기
rupert kim
Processing 4th Class: Function
Processing 4th Class: Function
MinGi KYUNG
[아꿈사] The C++ Programming Language 13장 템플릿
[아꿈사] The C++ Programming Language 13장 템플릿
해강
제 4회 DGMIT R&D 컨퍼런스 : IIFE와 QA공통항목
제 4회 DGMIT R&D 컨퍼런스 : IIFE와 QA공통항목
dgmit2009
JavaInAction 자바 8
JavaInAction 자바 8
NBT Inc.
[Swift] Protocol (1/2)
[Swift] Protocol (1/2)
Bill Kim
[2011 04 30]python-3장
[2011 04 30]python-3장
Jong Pil Won
Recomendados
Lambda 란 무엇인가
Lambda 란 무엇인가
Vong Sik Kong
Java 8 api :: lambda 이용하기
Java 8 api :: lambda 이용하기
rupert kim
Processing 4th Class: Function
Processing 4th Class: Function
MinGi KYUNG
[아꿈사] The C++ Programming Language 13장 템플릿
[아꿈사] The C++ Programming Language 13장 템플릿
해강
제 4회 DGMIT R&D 컨퍼런스 : IIFE와 QA공통항목
제 4회 DGMIT R&D 컨퍼런스 : IIFE와 QA공통항목
dgmit2009
JavaInAction 자바 8
JavaInAction 자바 8
NBT Inc.
[Swift] Protocol (1/2)
[Swift] Protocol (1/2)
Bill Kim
[2011 04 30]python-3장
[2011 04 30]python-3장
Jong Pil Won
실패한 프로젝트들의 개발문화_개발방법론
실패한 프로젝트들의 개발문화_개발방법론
Suwon Chae
Bnf seeg ws
Bnf seeg ws
bbongcsu
Refactoring
Refactoring
Suwon Chae
Refactoring 메소드 호출의 단순화
Refactoring 메소드 호출의 단순화
HyeonSeok Choi
TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: Refactoring
Suwon Chae
TDD&Refactoring Day 03: TDD
TDD&Refactoring Day 03: TDD
Suwon Chae
Bnf seeg
Bnf seeg
bbongcsu
Refactoring#9
Refactoring#9
Seungmin Yu
The roadtocodecraft
The roadtocodecraft
bbongcsu
study refactoring
study refactoring
재원 최
Refactoring Seminar
Refactoring Seminar
Byeongweon Moon
Big refactoring #12
Big refactoring #12
Jay Kim
OPEN Forum: Women Business Owners
OPEN Forum: Women Business Owners
Rashmi Sinha
Working with code
Working with code
JaeYeoul Ahn
Clean code
Clean code
bbongcsu
TDD&Refactoring Day 02: TDD
TDD&Refactoring Day 02: TDD
Suwon Chae
Refactoring #7
Refactoring #7
Jay Kim
Mongo db로 배우는 nosql
Mongo db로 배우는 nosql
Suwon Chae
Refactoring -chapter 7,8-
Refactoring -chapter 7,8-
Kwang Jung Kim
Refactoring tutorial
Refactoring tutorial
Bingu Shim
Ch4 pugixml
Ch4 pugixml
Kyungryul KIM
Node ch12
Node ch12
Kyungryul KIM
Mais conteúdo relacionado
Destaque
실패한 프로젝트들의 개발문화_개발방법론
실패한 프로젝트들의 개발문화_개발방법론
Suwon Chae
Bnf seeg ws
Bnf seeg ws
bbongcsu
Refactoring
Refactoring
Suwon Chae
Refactoring 메소드 호출의 단순화
Refactoring 메소드 호출의 단순화
HyeonSeok Choi
TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: Refactoring
Suwon Chae
TDD&Refactoring Day 03: TDD
TDD&Refactoring Day 03: TDD
Suwon Chae
Bnf seeg
Bnf seeg
bbongcsu
Refactoring#9
Refactoring#9
Seungmin Yu
The roadtocodecraft
The roadtocodecraft
bbongcsu
study refactoring
study refactoring
재원 최
Refactoring Seminar
Refactoring Seminar
Byeongweon Moon
Big refactoring #12
Big refactoring #12
Jay Kim
OPEN Forum: Women Business Owners
OPEN Forum: Women Business Owners
Rashmi Sinha
Working with code
Working with code
JaeYeoul Ahn
Clean code
Clean code
bbongcsu
TDD&Refactoring Day 02: TDD
TDD&Refactoring Day 02: TDD
Suwon Chae
Refactoring #7
Refactoring #7
Jay Kim
Mongo db로 배우는 nosql
Mongo db로 배우는 nosql
Suwon Chae
Refactoring -chapter 7,8-
Refactoring -chapter 7,8-
Kwang Jung Kim
Refactoring tutorial
Refactoring tutorial
Bingu Shim
Destaque
(20)
실패한 프로젝트들의 개발문화_개발방법론
실패한 프로젝트들의 개발문화_개발방법론
Bnf seeg ws
Bnf seeg ws
Refactoring
Refactoring
Refactoring 메소드 호출의 단순화
Refactoring 메소드 호출의 단순화
TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 01: Refactoring
TDD&Refactoring Day 03: TDD
TDD&Refactoring Day 03: TDD
Bnf seeg
Bnf seeg
Refactoring#9
Refactoring#9
The roadtocodecraft
The roadtocodecraft
study refactoring
study refactoring
Refactoring Seminar
Refactoring Seminar
Big refactoring #12
Big refactoring #12
OPEN Forum: Women Business Owners
OPEN Forum: Women Business Owners
Working with code
Working with code
Clean code
Clean code
TDD&Refactoring Day 02: TDD
TDD&Refactoring Day 02: TDD
Refactoring #7
Refactoring #7
Mongo db로 배우는 nosql
Mongo db로 배우는 nosql
Refactoring -chapter 7,8-
Refactoring -chapter 7,8-
Refactoring tutorial
Refactoring tutorial
Mais de Kyungryul KIM
Ch4 pugixml
Ch4 pugixml
Kyungryul KIM
Node ch12
Node ch12
Kyungryul KIM
11.scripting
11.scripting
Kyungryul KIM
32 osx app_release
32 osx app_release
Kyungryul KIM
Meteor ddp
Meteor ddp
Kyungryul KIM
Cocos2dx 7.1-7.2
Cocos2dx 7.1-7.2
Kyungryul KIM
Cocos2 d x-7.3_4
Cocos2 d x-7.3_4
Kyungryul KIM
Cocos2d x-ch5-1
Cocos2d x-ch5-1
Kyungryul KIM
Coco2d x
Coco2d x
Kyungryul KIM
23 drag drop
23 drag drop
Kyungryul KIM
Hadoop ch5
Hadoop ch5
Kyungryul KIM
전문검색기술도전
전문검색기술도전
Kyungryul KIM
Nib_NSWindowController
Nib_NSWindowController
Kyungryul KIM
Dsas
Dsas
Kyungryul KIM
서버인프라를지탱하는기술5 1 2
서버인프라를지탱하는기술5 1 2
Kyungryul KIM
Chaper24 languages high_and_low
Chaper24 languages high_and_low
Kyungryul KIM
Ch22 운영체제
Ch22 운영체제
Kyungryul KIM
Mibis ch20
Mibis ch20
Kyungryul KIM
Mibis ch15
Mibis ch15
Kyungryul KIM
Mibis ch8
Mibis ch8
Kyungryul KIM
Mais de Kyungryul KIM
(20)
Ch4 pugixml
Ch4 pugixml
Node ch12
Node ch12
11.scripting
11.scripting
32 osx app_release
32 osx app_release
Meteor ddp
Meteor ddp
Cocos2dx 7.1-7.2
Cocos2dx 7.1-7.2
Cocos2 d x-7.3_4
Cocos2 d x-7.3_4
Cocos2d x-ch5-1
Cocos2d x-ch5-1
Coco2d x
Coco2d x
23 drag drop
23 drag drop
Hadoop ch5
Hadoop ch5
전문검색기술도전
전문검색기술도전
Nib_NSWindowController
Nib_NSWindowController
Dsas
Dsas
서버인프라를지탱하는기술5 1 2
서버인프라를지탱하는기술5 1 2
Chaper24 languages high_and_low
Chaper24 languages high_and_low
Ch22 운영체제
Ch22 운영체제
Mibis ch20
Mibis ch20
Mibis ch15
Mibis ch15
Mibis ch8
Mibis ch8
Cleancode ch16 serialdate_refactoring
1.
SerialDate 리팩토링
2.
16.1 SerialDate 리팩토링 ❖
SerialDateTests [목록 B-2] ❖ 클로버 코드 커버리지 분석 도구 수행해 본 결과 185개 문장중 91개문장만 수행. 약 50%의 커버리지. ❖ 단위 테스트 케이스 추가[목록 B-4] ❖ 50% -> 92%
3.
16.2 Make It
Right.
4.
변경 이력 주석
제거.
5.
주석에 HTML 제거.
6.
명확한 클래스명과 불필요한 상속
제거.
7.
시리얼라이즈 지원 수정
8.
깔끔한 표현 및
추상화 수준
9.
부모클래스가 파생클래스를 생성.
10.
추상 팩토리 패턴
11.
주석 제거
12.
public, 변수 제거.
13.
변수 위치 이동.
14.
enum 사용.
15.
모호한 상수명 수정.
16.
사용하지 않는 함수
제거.
17.
final, 주석 제거,
예외처리
18.
메소드 합치기
19.
기능 욕심(Feature Envy)
제거.
20.
플래그 인자 제거.
21.
서술적 표현으로 변경.
22.
addDays 메소드 수정
23.
임시 설명 변수 (Explaining
Temporary Variables) 적용
24.
이상한 메소드 수정.
25.
추상 메서드 수정
26.
추상 메서드 수정.
27.
추상메서드 수정.
Notas do Editor
\n
\n
\n
\n
\n
\n
\n
SpreadsheetDate에서만 사용되는 상수값을 옮김.\n
SerialDate 에서 자식클래스 SpreadSheetDate 를 생성하고 있음.\n
자식 클래스 생성을 제거하기 위해\n
\n
LAST_DAY_OF_MONTH 는 정적 함수에서만 사용.(public제거?)\nAGGREGATE_DAYS_TO_END_OF_MONTH 는 사용되지 않음.\n
AGGREGATE_DAYS_TO_END_OF_PRECEDING_MONTH 는 SpreadsheetDate에서만 사용되어 옮김.\n
\n
개/반개/폐구간 정의.\n
description(), SerialDate(), \nisValidWeekdayCode() 은 enum으로 변경했으므로 삭제.\n
final 삭제, \n-1을 제거한다는 주석외에 의미없음. 이것도 enum으로 변경했으므로 의미없음.\nIllegalArgumentException 발생.\n
DateFormatSymbols 클래스 이용.\n
쓸데없이 어렵게 구현된 코드 제거.\n
\n
윤년확인.\n
static 제거. 인스턴스 메서드로 수정.\ntoSerial()을 getOrdinalDay()\nAddDays(7), plusDays(5) 의미?(p378)\n
임시변수를 사용 좀 더 명확하도록 수정.\n
인자로 받는 SerialDate의 의미가 없다. 그래서 제거.\n\n
toDate() 함수가 추상 메서드일 필요가 없어서 abstract 제거.\n
추상메서드 isInRange()를 DayDate로 옮기고, abstract제거.\n
\n