🤢 리팩터링 전 코드
- 문제 라인 -> 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줄 요약
- 처음에 코드를 작성할 때 깨끗하게 작성했으면 이런 소요가 없었을 것 같습니다.
- 예전에 작성한 코드를 리팩터링 하면서 방청소를 하는 기분을 느꼈습니다.(힘들지만 뿌듯)
- 깨끗한 코드에 대해 끊임없는 고민이 필요한 것 같습니다.
반응형
'독서 > 클린코드_노개북' 카테고리의 다른 글
[노개북] 클린코드 24일차 - 노마드 코더 (0) | 2022.02.17 |
---|---|
[노개북] 클린코드 23일차 - 노마드 코더 (0) | 2022.02.16 |
[노개북] 클린코드 21일차 - 노마드 코더 (0) | 2022.02.10 |
[노개북] 클린코드 20일차 - 노마드 코더 (0) | 2022.02.10 |
[노개북] 클린코드 18일차 - 노마드 코더 (0) | 2022.02.07 |