본문 바로가기

리팩토링(마틴 파울러)

(3)
리팩토링 2장 : 리팩토링의 원리 1장은 예제라도 있어서 힘겹게 소화했지만, 2장은 저명한 개발자의 경험을 통해서 리팩토링의 효과와 한계를 들여다보는 내용이기에, 나같은 초보자는 더 이해가 어려웠다. 구체적인 이야기들은 아니기에 아는 만큼 보이는 내용일거라고 생각한다. 나는 내가 이해하고 있는 것에 확신이 없어서 일단 책에 쓰인 내용 그대로를 옮겨 정리할 것이다. 리팩토링의 정의 소프트웨어를 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부구조를 변경하는 것 리팩토링은 단순히 코드를 깔끔하게 하기 위해 보다 효율적이고 통제된 방법을 제공한다. 중요한 점은 리팩토링은 소프트웨어를 더 쉽게 이해할 수 있도록 바꾸기 때문에 그 과정만으로 코드에 대한 더 깊은 이해를 돕는다. 이와 대조되는 것은 퍼포먼..
리팩토링 : 1장 조건문을 다형성으로 바꾸기 조건문을 다형성으로 바꾸기 Refactoring/src/main/java com.heejin.ex01_2 저번에는 htmlStatement와 같이 같은 기능을 하는 다른 메서드를 만들 때 기존 코드를 재사용할 수 있도록, 그리고 변경사항이 생기더라도 여러 메서드가 아니라 한 메서드만 고칠 수 있도록 statement 메서드의 여러 기능을 다양한 메서드로 분해했다. 이번에는 영화 분류법, 그리고 이에 따른 요금과 포인트 할당법을 쉽게 바꿀 수 있도록 리팩토링을 해볼 것이다. Rental의 getCharge() 메서드를 Movie 클래스로 옮기기 Why?? 메서드가 priceCode라는 Movie클래스의 변수를 주로 사용하고 있기 때문 Movie의 종류가 앞으로의 주 변경사항이기 때문에 그 변화의 파장을 최..
리팩토링 : 1장 첫 번째 예제 - 메서드의 분해 및 재분배 1장의 전체적인 내용 : 1장에서는 흔한 디자인 상의 결점을 갖고 있는 작은 프로그램을 갖고 리팩토링을 해서 만족할 만한 수준의 객체 지향 프로그램으로 만드는 과정을 그린다. 우리는 이 과정에서 리팩토링의 프로세스와 몇가지 유용한 리팩토링을 적용하는 것을 본다. 이를 통해 리팩토링이란 무엇인가를 어느정도 이해할 수 있게 한다. 예제 - 비디오 가게에서 고객이 어떤 영화를 얼마나 오랫동안 빌렸는 지 보여주고 이 영화의 종류와 대여기간에 따라 요금을 계산하는 프로그램 영화의 종류는 보통, 어린이용, 최신 이렇게 세 가지 종류로 나뉜다. Movie package com.heejin.ex01; public class Movie { public static final int CHILDREN = 2; public ..