Refactoring에 관련한 내용을 정리합니다.
Refactoring에 관련한 내용을 정리합니다.
29 items under this folder.
리팩토링 1장을 시작해본다. 들어가면서 예시가 먼저나온다. 리팩터링이 뭔지 알려주는 단계이다. 이 책은 리팩터링이 무엇인지 알려주고, 이를 객체지향 방식으로 개선하는 것을 소개한다. 가장 핵심인 부분은 뒤의 카탈로그이다. 수시로 찾아보면서 적용하는 방식으로 사용해라.
임시 변수를 없애는 방법을 알아보자.
임시 변수 제거를 계속해보자.
정리한 함수를 다시보자. 편함을 위해 중첩상태가 너무 많아졌다.
우리가 하고 싶었던 HTML을 만들기 위해 계산 단계와 포맷팅 단계를 분리하는 작업을 진행해보자.
만약에 연극 종류가 추가되면 어떻게 될까? 이제 다형성으로 변경할 시점이다. 다형성을 활용해 계산코드 재구성하기 지금까지 구성한 코드를 한번 보자.
마지막으로 변경된 코드를 보며 생각해보자.
이제 리팩터링 전반에 적용되는 원칙 몇 가지를 살펴보자. 리팩터링 정의 리팩터링이라는 개발 용어는 굉장히 두루뭉실한 의미로 통용된다. (많은 개발 용어가 그렇다) 하지만 이를 엄격하게 정의해야 유용하다.
냄새나면 당장 갈아라. 어떻게 하는지에 대해서 지금까지 배웠다. 하지만, “언제” 시작하고 그만할지를 판단하는 것은 또 다른 얘기다. 어떤 “냄새”를 맡았을 때 손을 대야할까? 기이한 이름 이름으로 이게 뭐하는 것인지 딱 볼 수 있게 작성해야 한다.
리팩토링에 있어 테스트 코드는 왜 중요할까? 자가 테스트 코드의 가치 프로그래머들의 대부분의 시간은 코드치는 시간이 아니다. 현상황 파악 / 설계 고민 / 디버깅에 많은 시간을 쓴다. 디버깅의 경우 수정자체는 금방 끝난다. 다만 찾는데 고통스럽다.
카탈로그 설명을 보기전에 어떻게 읽으면 좋은지 알아보자. 리팩터링 설명 형식 이름 개요: 핵심 개념이 무엇인가? 나중에 찾아볼 때, 이게 어떤건지 쉽게 떠올리기 위한 것.
Extract Function, 함수 추출하기에 대해 알아보자.
Inline Function, 함수 인라인하기를 알아보자.
Extract Variable, 변수 추출하기를 알아보자.
Inline Variable, 변수 인라인하기를 알아보자.
Change Function Declaration, 함수 선언 바꾸기에 대해 알아보자. 요약 코드 function circum(radius) { .. } function circumference(radius) { ..
Encapsulate Variable, 변수 캡슐화하기를 알아보자.
Rename Variable, 변수 이름 바꾸기를 알아보자. 요약 코드 let a = height * width; let area = height * width; 배경 명확한 프로그래밍의 핵심은 이름 짓기다.
Introduce Parameter Object, 매개변수 객체 만들기에 대해 알아보자.
Combine Functions into Class, 여러 함수를 클래스로 묶기를 알아보자.
Combine Functions into Transform, 여러 함수를 변환 함수로 묶기를 알아보자.
Split Phase, 단계 쪼개기를 알아보자.
Encapsulate Record, 레코드 캡슐화 하기를 알아보자.
Encapsulate Collection, 컬렉션 캡슐화 하기를 알아보자.
Replace Primitive With Object, 기본형을 객체로 바꾸기를 알아보자.
Decompose Conditional, 조건문 분해하기를 알아보자.
Consolidate Conditional Expression, 조건식 통합하기를 알아보자.
Replace Nested Conditional With Guard Clauses, 중첩 조건문을 보호 구문으로 바꾸기를 알아보자.
Replace Conditional With Polymorphism, 조건부 로직을 다형성으로 바꾸기를 알아보자.