드디어 리팩토링 책을 다 읽었습니다!!!
일하면서 경험적으로 느꼈던 것들을 카탈로그 식으로 정리해볼 수 있어서 좋았습니다.
챕터 별로 알게된 것들은 정리해뒀지만, 책 전체를 읽고나서 느낀 점들도 정리해두면 좋을 것 같아서 글로 남겨봅니다.
느낀점
작은 단계로 나눠서 한 걸음씩 진행하자
계단도 한꺼번에 오르려고 하면 숨이찹니다.
코드 변경을 한꺼번에 하면 버그를 놓치기 쉽고 원래 코드로 돌아가기 어렵습니다.
솔직히 저자가 너무 잘게 코드를 나눠서 리팩토링을 진행하는걸 보고 놀랬습니다.
이정도의 전문가도 겸손함을 갖추고 조금씩 진행하는걸 보고, 나도 이렇게 잘게 나눠서 진행해야겠다고 생각했습니다.
테스트 코드는 정말 유용하다
원래 기능이 잘 작동하는지 확인하느라 원래 하고자 했던 리팩토링을 제대로 못하는 경우가 있었습니다.
생각이 분산되기 때문에 더 나은 코드를 작성하지 못하게 됩니다.
원래 기능은 잘 작동하고 있는가? 하는 질문에 대한 답은 테스트 코드 입니다.
테스트 코드가 있으면 리팩토링의 본질인 더 나은 구조로 바꾸는데 집중할 수 있습니다.
책을 읽으면서 실무에도 조금씩 적용해봤는데요.
테스트 코드가 풍부하지 않은 코드 베이스에서 출발하는게 어려웠습니다.
iOS 프로젝트에서 테스트 코드의 실행 속도가 느려서 짧은 주기로 테스트 하지 않게 되는 단점이 있었습니다.
좀 더 경험을 쌓으면서 해결책을 찾아봐야겠습니다.
코드에서는 명확함이 핵심이다
어떤 원칙이 있더라도 명확함을 떨어트린다면, 원칙을 어기더라도 명확함을 드러내는 방식을 사용하는 것이 좋습니다.
유연하게 생각하는 것이 중요하다는 것을 배웠습니다.
조건문, 함수명, 코드의 위치 등 모든 곳에서 의도를 드러낼 수 있다는 것을 알게되었습니다.
다양한 부분으로 의도를 드러내서 더 명확하게 만들어야겠습니다.
얻은 교훈들을 메모해두기
저자는 리팩토링 기법들을 작게 나누고 메모해둔 것 같습니다.
교훈을 얻은게 있으면 다음에 또 사용할 수 있도록 메모해야겠습니다.
앱 릴리즈 때마다 회고하는것도 이러한 교훈을 기록하는데 도움이 될 것 같습니다.
다른 개발자 블로그를 보면 주간회고를 하는 경우도 있던데, 저도 이렇게 주기적인 회고를 해보려합니다.
정리
책이 스토리 형식이 아니라서 지루하기도 했습니다.
하지만 책을 읽으면서 제 코드가 조금씩 개선되는 것을 느꼈습니다.
리팩토링 기법들을 코드에 녹이면서 작은 성장을 이뤘다는 생각에 기뻤습니다.
이번에 배운 것을 통해 좀 더 재밌고 행복한 개발을 할 수 있으면 좋겠네요.
읽어주셔서 감사합니다 :)
'CS > Refactoring' 카테고리의 다른 글
[Refactoring] Chapter 11: API 리팩터링 (0) | 2021.05.22 |
---|---|
[Refactoring] Chapter 10: 조건부 로직 간소화 (0) | 2021.05.16 |
[Refactoring] Chapter 9: 테이터 조직화 (0) | 2021.05.16 |
[Refactoring] Chapter 8: 기능이동 (0) | 2021.05.16 |
[Refactoring] Chapter 7: 캡슐화 (0) | 2021.05.03 |