
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