본문 바로가기

리팩터링

(3)
리팩터링 2판 요약 - 챕터 6 6.1 함수 추출하기 배경 코드 이해를 돕기 위함 절차 함수를 새로 만들고 목적을 잘 드러내는 이름을 붙인다. 추출할 코드를 원본 함수에서 복사해 새 함수에 넣는다. 추출한 코드 중 원본 함수의 지역 변수를 레퍼런스 하거나 추출한 함수의 유효범위를 벗어나는 변수는 없는지 검사한다. 있다면 매개변수로 전달한다. 변수를 다 처리하면 컴파일 추출한 코드 부분을 새로 만든 함수의 호출로 바꾼다. 테스트한다. 추출한 함수와 비슷한 코드가 다른 곳에 있는지 살펴보고 있으면 추출한 함수로 바꿀지 결정한다. 6.2 함수 인라인하기 배경 6.1의 반대로 함수 이름보다 코드 그 자체가 이해하기 쉬운 경우가 있다. 절차 다형 메서드(Polymorphic Method)인지 확인. 그렇다면 하면 안 된다. 함수를 호출하는 곳을..
리팩터링 2판 요약 - 챕터 3 코드에서 나는 악취 냄새나면 당장 갈아라. -육아 원칙 3.1 기이한 이름 - Mysterious Name 함수, 모듈, 변수, 클래스 등은 그 이름만 보고도 무슨 일을 하고 어떻게 사용하는지 명확히 알 수 있어야 함. 이름만 잘 지어도 문맥 파악에 걸리는 시간을 절약할 수 있음. 책에서는 관련 기법으로 함수 선언 바꾸기, 변수 이름 바꾸기, 필드 이름 바꾸기가 등장할 예정. 3.2 중복 코드 - Duplicated Code 똑같은 코드를 하나로 통합하여 더 나은 프로그램을 만들 수 있다. 중복된 코드는 서로의 차이점을 찾게 되는 부담이 생긴다. 함수 추출하기, 문장 슬라이드하기, 메서드 올리기 기법으로 개선할 수 있다. 3.3 긴 함수 - Long Function 함수를 짧게 구성하면 이해, 공유, 선..
리팩터링 2판 요약 - 챕터 2 2.1 리팩터링 정의 명사: 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법 동사: 소프트웨어의 소프트웨어의 겉보기 동작은 그대로 유지한 채, 여러 가지 리팩터링 기법을 적용해서 소프트웨어를 재구성하다. 겉보기 동작(Observable Behavior): 리팩터링 전과 후의 코드가 완벽히 똑같이 작동해야 함. 성능의 차이가 발생하고 같은 결과를 보여주기만 하면 됨. 2.2 두 개의 모자(Two hats) Two hats는 일인이역을 뜻함. 소프트웨어 개발의 목적을 "기능 추가", "리팩터링"으로 구분함. 소프트웨어를 개발할 때는 기능 추가 모자와 리팩터링 모자 두 개를 자주 바꾸면서 개발함. 본인이 어떤 모자를 썼는지 인지할 필요가 있음. 2.3 ..