본문 바로가기
반응형

리팩터링9

[리팩터링 카탈로그] 1-8. 매개변수 객체 만들기 절차 적당한 데이터 구조가 아직 마련되어 있지 않다면 새로 만든다. 테스트한다. 함수 선언 바꾸기로 새 데이터 구조를 매개변수로 추가한다. 테스트한다. 함수 호출시 새로운 데이터 구조 인스턴스를 넘기도록 수정한다. 하나씩 수정할 때마다 테스트 한다. 기존 매개변수를 사용하던 코드를 새 데이터 구조의 원소를 사용하도록 바꾼다. 다 바꿧다면 기존 매개변수를 제거하고 테스트한다. 예시 Before: function amountInvoiced(startDate, endDate) { //... } function amountReceived(startDate, endDate) { //... } function amountOverDue(startDate, endDate) { //... } After: function.. 2021. 12. 6.
[리팩터링 카탈로그] 1-7. 변수 이름 바꾸기 절차 폭넓게 쓰이는 변수라면 변수 캡슐화하기를 고려한다. 이름을 바꿀 변수를 참조하는 곳을 모두 찾아서, 하나씩 변경한다. 테스트 한다. 예시 Before: let a = height * width; After: let area = height * width; 출처 : 리팩터링 2판 – Chapter6 2021. 12. 6.
[리팩터링 카탈로그] 1-6. 함수 선언 바꾸기 절차 변수로의 접근과 갱신을 전담하는 캡슐화 함수들을 만든다. 정적 검사를 수행한다. 변수를 직접 참조하던 부분을 모두 적절한 캡슐화 함수 호출로 바꾼다. 하나씩 바꿀 때마다 테스트 한다. 변수의 접근 범위를 제한단다. 테스트 한다. 변수 값이 레코드라면 레코드 캡슐화하기를 적용할지 고려해본다. 예시 Before: let defaultOwner = { firstName: "John", lastName: "Doe" }; After: let defaultOwnerData = { firstName: "John", lastName: "Doe" }; export function defaultOwner() { return defaultOwnerData; } export function defaultOwner(dat.. 2021. 12. 6.
[리팩터링 카탈로그] 1-5. 함수 선언 바꾸기 간단한 절차 매개 변수를 제거하려거든 먼저 함수 본문에서 제고 대상 매개변수를 참조하는 곳은 없는지 확인한다. 메서드 선언을 원하는 형태로 바꾼다. 기존 메서드 선언을 참조하는 부분을 모두 찾아서 바뀐 형태로 수정한다. 테스트 한다. 예시 Before: function circum(radius) { return 2 * Math.PI * radius; } After: function circumference(radius) { return 2 * Math.PI * radius; } 마이그레이션 절차 이어지는 추출 단계를 수원하게 만들어야 한다면 함수의 본문을 적절히 리팩터링한다. 함수 본문을 새로운 함수로 추출한다. 추출한 함수에 매개변수를 추가해야 한다면 ‘간단한 절차를’따라 추가한다. 테스트한다. 기존 .. 2021. 12. 5.
반응형