2장 리팩터링 깊게 들여다보기

김신영·2023년 7월 6일
0

Five Lines of Code

목록 보기
2/3
post-thumbnail

가독성 및 유지보수성 향상

  • 더 나은 코드를 만드는것
  • 코드가 하는 일은 변경하지 않는다.

가독성

의도를 전달하기 위한 코드의 성질

  • 코드가 무슨 일을 하는 지 파악하기가 쉽다.

유지보수성

취약하다 (fragile)

  • 어떤 시스템에서 한군데서 무언가를 수정하면, 관련 없어 보이는 다른 곳에서 문제가 발생

전역상태 (global state)

  • 취약성의 근원
  • 전역은 우리가 고려한 범위(scope)를 벗어난 것을 의미

불변속성의 범위제한 (localizing invariants)

함께 변하는 것은 함께 있어야 한다.

리팩터링 세가지 핵심

  • 의도를 전달함으로써 가독성 향상
  • 불변솏성의 범위제한을 통한 유지보숫성 향상
  • 범위 밖의 코드에 영향을 주지 않고 1항과 2항을 수행

속도, 유연성 및 안정성 확보

상속보다는 컴포지션 사용하라

  • 범위가 제한되지 않은 불변속성을 도입하는 상속(inheritance) 을 권장하지 않음. 👎

수정이 아니라 추가로 코드를 변경

  • 컴포지션의 가장 큰 장점은 추가 로 코드 변경이 가능하다.
  • OCP (Open-Closed Principle)

보이스카우트 규칙

항상 여러분이 왔을 때보다 더 좋게 만들어 놓고 떠나세요

요약

  • 리팩터링은 기능 변경 없이 코드의 의도를 전달하고 불변속성의 범위를 제한하는 것
  • 상속보다는 컴포지션을 사용함으로써, 추가를 통한 변경으로 개발 속도, 유연성, 안정성을 확보
  • 리팩터링을 일상 업무에 포함시켜 기술 부채가 쌓이지 않도록 해야 합니다.
  • 리팩터링을 연습하면 코드에 대한 독특한 관점을 얻을 수 있으며, 이로 인해 더 나은 해결책을 찾을 수 있다.
profile
Hello velog!

0개의 댓글