refactoring
Refactoring 원칙, 이유, 장점...
기이한 이름, 중복 코드, 긴 함수, 긴 매개변수 목록, 전역 데이터, 가변 데이터, 뒤엉킨 변경, 산탄총 수술, 기능 편애, 데이터 뭉치, 기본형 집착, 성의 없는 요소, 추측성 일반화, 임시 필드, 메시지 체인, 중개자, 내부자 거래, 거대한 클래스, 데이터 클래스
리팩터링과 TDD
refactoring
extract/inline function/variable, encapsulate variable, introduce parameter object, combine functions into class/transform, split phase
Encapsulate Record/Collection, Replace Primitive with Object, Replace Temp with Query, Extract/Inline Class, Hide Delegate, Remove Middle Man
move function/field, move stratements into function/callers, replace inline code with function call, slide statements, split loop
Split Variable, Rename Field, Replace Derived Variable with Query, Change Reference to Value, Chagne Value to Reference, Replace Maigc Literal
Decompose Conditional, Consolidate Conditional, Replace Nested Conditional with Guard Clauses, Replace Conditional with Polymorphism
Seperate Query from Modifier, Parameterize Function, Remove Flag Argument, Replace Parameter and Query, Remove Setter, Replace Function and Command
Pull Up/Down Field/Method, Pull Up Constructor, Replace Type Code with Subclass, Remove Subclass, Extract Superclass, Replace Sub/Super with Delegate