🤢 리팩터링 전 코드

  • 문제 라인 -> 7번째
  • 클린코드 140p. [null을 전달하지마라]를 바탕으로 리팩터링 했습니다.
  • null을 전달하면 NullPointerException이 발생한다.
    => null 처리를 if문으로 하기는 했지만 Optional로 처리를 하면 더 클린 하게 할 수 있다.

 

😄 [1차 리팩토링 후] 진리 1. null을 전달하지마라

  • 여전히 코드가 더럽기는 하지만 우선 null을 그냥 넘겨주는 것을 Optional이라는 함수로 처리했습니다.
    => 만약에 찾는 레스토랑이 null이면 Exception 강제 발생
    => 아니라면 찾은 레스토랑의 정보를 바탕으로 다른 Exception 처리
  • 하지만 여기서 28번째 라인을 보면 레스토랑 내 음식 중복검사까지 하는 걸 볼 수 있습니다.
    => 하나의 함수에 2 가지 이상의 로직 처리를 하는 소요 발생
    => 리팩터링 2차 진행!

 

😄 [2차 리팩터링 후] 진리 2. 한 가지만 해라!

  • 클린코드 44p. [한 가지만 해라!]를 바탕으로 리팩터링 했습니다.
  • 레스토랑에 등록하려는 음식에 중복되는 음식이 있는지 확인하는 함수를 따로 분리했습니다.
  • 하지만 여전히 하나의 함수에 20줄이 넘고 난잡한 코드인 것을 볼 수 있습니다.
    => 3차 리팩터링 진행!

 

😄 [3차 리팩터링 후] 진리 3. (함수)작게 만들어라

  • 클린코드 42p. [작게 만들어라]를 바탕으로 리팩터링 했습니다.
  • 하나의 함수를 20라인 내외로 줄였습니다.
  • 그만큼 함수가 많이 생기긴 했지만 훨씬 보기 편해지고 깨끗한 코드가 되었습니다.

 

 

👀 소감 3줄 요약

  • 처음에 코드를 작성할 때 깨끗하게 작성했으면 이런 소요가 없었을 것 같습니다.
  • 예전에 작성한 코드를 리팩터링 하면서 방청소를 하는 기분을 느꼈습니다.(힘들지만 뿌듯)
  • 깨끗한 코드에 대해 끊임없는 고민이 필요한 것 같습니다.

 

 

 

반응형

+ Recent posts