리팩토링5 리팩토링 2판 - Chapter 11 (API 리팩터링) 11.1 질의 함수와 변경 함수 분리하기 우리는 외부에서 관찰할 수 있는 겉보기 부수효과(observerable side effect)가 전혀 없이 값을 반환해주는 함수를 추구해야 한다. (...중략...) 겉보기 부수효과가 있는 함수와 없는 함수는 명확히 구분하는 것이 좋다. (...중략...) 이를 명령-질의 분리(command-query sepration)라 하는데 p.413 명령 - 질의 분리는 꽤나 유용한 행동지침입니다. 결과 값을 가져오는 것과 객체 내부 상태 변경을 한 번에 하고 있으면 사용하는 입장에서는 결과를 예측하기 어려워집니다... 그래서 두 개의 함수로 분리시키는 것이 유지보수에 좋습니다. 11.3 플래그 인수 제거하기 함수의 인자로 boolean 값을 넘기는 관례는 피해야 합니다... 2022. 10. 20. 리팩토링 2판 - Chapter 10 (조건부 로직 간소화) 조건문이 복잡해지는 경우 다루기가 굉장히 까다로워지는데 이것을 해결하기 위한 다양한 방법들을 제안합니다. 10.3 중첩 조건문을 보호 구문으로 바꾸기 함수 중간에 guard 로 로직을 중단하는 게 의도를 더 드러낼 수 있는 경우가 있습니다. Swift에서는 명시적으로 guard라는 구문이 있어서 편리하게 사용할 수 있는데, 언어 레벨에서 구문을 지원하기 때문에 많은 개발자들이 더 활발하게 사용하게 되는 것 같습니다. 중첩 조건문을 보호 구문으로 바꾸기 리팩터링의 핵심은 의도를 부각하는데 있다. 나는 if-then-else 구조를 사용할 때 if절과 else절에 똑같은 무게를 두어, 코드를 읽는 이에게 양 갈래가 똑같이 중요하다는 뜻을 전달한다. 이와 달리, 보호 구문은 "이건 이 함수의 핵심이 아니다. .. 2022. 10. 20. 리팩토링 2판 - Chapter 9 (데이터 조직화) 이번에는 데이터 구조에 집중한 리팩토링을 다룹니다. 9.2 필드 이름 바꾸기 데이터 구조는 무슨 일이 벌어지는지를 이해하는 열쇠다. p.334 image_credit — Educative 데이터 구조는 단순히 값을 담아두는 공간이 아니라 프로그램을 더 잘 이해할 수 있도록 유도하는 역할을 해줍니다. 데이터 구조를 잘 선택하는 것만으로도 프로그램의 이해도를 높일 수 있다고 합니다. 알고리즘 문제를 풀다 보면 큐나 스택을 적절히 고르는 것만으로 문제가 쉽게 해결되는 것을 경험한 적이 있는데 실무에서도 동일하게 적용될 수 있을 것으로 기대됩니다. 데이터 구조가 중요한 만큼 반드시 깔끔하게 관리해야 한다. 다른 요소와 마찬가지로 개발을 진행할수록 데이터를 더 잘 이해하게 된다. 따라서 그 깊어진 이해를 프로그램.. 2022. 10. 20. 리팩토링 2판 - Chapter 1 1.1 ~ 1.4 가장 먼저 변수의 이름을 더 명확하게 바꾸기 매개변수의 역할이 뚜렷하지 않을 때는 부정관사(a/an)을 붙인다. 추출작업 전에는 지역변수부터 제거 1.5 ~ 1.8 단계 쪼개기 함수 추출하기로 뽑아내야한다. 2.1 ~ 2.4 리팩터링 : 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법 리팩터링을 하는 이유 → 리팩토링하면 소프트웨어 설계 좋아진다. 중복 코드 제거는 설계 개선 작업의 중요한 한 축. 소프트웨어를 이해하기 쉬워진다. 버그를 쉽게 찾을 수 있다. 프로그래밍 속도를 높일 수 있다. 언제 리팩터링해야 할까? 처음에는 그냥 한다. 비슷한 일을 두 번째로 하게 되는 경우 비슷한 일을 세 번째 하게 되는 경우. 코드 리뷰의 결.. 2022. 10. 20. [2021 읽은 책] 리팩토링 2판 - 마틴 파울러 - 내것으로 꼭 만들어야 할 책(다시 읽어야 할 책) (⭐️⭐️⭐️⭐️⭐️) 2021. 9. 1. 이전 1 다음