[리팩터링 2판] CHAPTER 03. 코드에서 나는 악취 (1)

리팩터링 2판 책을 읽고 공부한 내용을 기록한다. 2판은 자바스크립트를 기반으로 예시를 제공하지만 저자 마틴 파울러는 리팩터링의 핵심 요소는 언어와 상관없이 동일하다고 이야기한다.

해당 기록에서는 책에서 다루는 예제 코드 대신 개인적으로 작성한 예제 코드를 사용한다. 즉, 책의 모든 내용과 순서를 그대로 담지 않을 수 있다.

각 장/절 별로 작성한 코드는 깃허브 개인 저장소에서 관리한다.

불릿 기호는 책의 내용 중 의미있다고 판단한 것을 옮겨 적은 것이다.

3장의 3.1절부터 3.12절까지 학습한 내용을 기록한다. 코드에서 나는 악취에 대한 저자의 생각 중 공감되는 부분과 나의 의견을 함께 작성한다.

3.1 기이한 이름

내가 작성한 코드를 동료가 무리없이 읽어 내려가고 이해할 수 있도록 개선하는 일을 자주 한다. 그 일에는 변수의 이름이 모호하지는 않은지 함수나 클래스의 이름이 명확한지 확인하고 개선하는 일이 빠질 수 없다.

3.2 중복 코드

3.3 긴 함수

내 코드를 확인할 때도 동료의 코드를 리뷰할 때도 하나의 함수를 읽어 내려가는 호흡이 길다 싶으면, 이 함수가 여러개의 목적을 갖고 있지는 않은지 확인하고 쪼개는 일을 먼저한다.

3.4 긴 매개변수 목록

매개변수 목록이 길어지면 꼭 필요한 데이터인지, 혹 그렇다면 객체로 넘기는 것이 명확하지는 않을지 고민한다.

3.5 전역 데이터

3.6 가변 데이터

3.7 뒤엉킨 변경

3.8 산탄총 수술

3.9 기능 편애

3.10 데이터 뭉치

3.11 기본형 집착

3.12 반복되는 switch문

각 절에서 언급하는 것을 코드의 안좋은 냄새의 기준으로 삼고 내 코드를 살펴보자. 이 악취를 개선하는 리팩터링 방법은 6장부터 설명한다.

--

--

programming x writing

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store