2장. 리팩토링 맛보기
말그대로 리팩토링 기법 맛보기 느낌이다. 뭔가 다 아는 내용 엄밀하게 말하기 느낌이랄까.. 역시나 도움이 되었다.
2장을 읽으며 느낀점과 고찰
- 전역변수는 지양하자리팩토링의 이유 중 하나인 가독성면에서도 전역변수 사용이 오히려 유리할 수있다. dfs 탐색을 예로서 떠올려보자. 매번 dfs에서 다뤄야하는 객체들을 매개변수로 바리바리(바리스타) 싸들고 다니는걸 보면 오히려 어지러울 때가 많다고 느끼기 때문이다.
- 근데 막상 코딩테스트 볼때는 전역변수가 선택이 아닌 필수로서 사용중이다.. 하나의 변수를 예쁘게 포장해서 옮기며 안전하게 수정하기보다는, 빠르게 변수에 접근해서 다양한 메소드로 변수값을 휙휙 바꿔야하기 때문이다. 목적에 따라서 필요할수도 있겠다는 생각이든다.
- 리팩토링 범위설정 잘하자(블랙박스 크기 설정)
- 객체지향원칙과 리팩터링은 유사하다.
- 상속과 컴포지션을 비교하면서, 유연성에대해 설명하고 개방-폐쇄 원칙에대해 얘기하는데 소름이 돋았다. 리팩토링과 내가 들었던 SOLID원칙과 이어지는 점이 어찌보면 자명한데, 반가웠다.
2장 대충요약
2.1 가독성 및 유지 보수성 향상
- 가독성
- 주석달기
- 변수/메소드/클래스/파일 명 작명 센스
- 공백사용.
- 이중부정등 소소한 팁.
- 유지보수성
- 얼마나 많은 후보를 조사해야ㅎ는지 나타내는 표현
- 취약성의 근원 : 전역상태
- 불변속성: 코드에서 상태(조건)를 명시적으로 확인하지 않는 속성.
- 함께변하는것은 함께있어야한다 : 불변속성의 범위제한
2.2 속도, 유연성 및 안정성 확보
상속보단 컴포지션쓰자
확장에 열려있고 수정에 닫혀있는 의미.. 마치 update말고 insert를 쓰는 느낌이다. 확실히 상속을안하고 컴포지션시에는, 상속받은 canswim을 변경하는것이아닌, canswim을 추가한다는 말이 맞다.
이러면 이제 다른 코드에 영향도 안주고, 기존코드 보존이 가능해 프로그래밍 속도 up!
2.3 리팩터링과 일상 업무
- 평소에 리팩토링을 자주해서 기술 부채를 없애자.
2.4 소프트웨어 분야에서 ‘도메인’정의하기
- 실생활을 소프트웨어로 옮길때, 도메인 정의가 중요하다
2장 정리(사실 책에서 매 장마다 요약해준다)
- 리팩터링은 기능 변경없이 코드의 의도를 전달하고 불변속성의 범위를 제한하는것
- 상속보다 컴포지션을 사용해 추가를통한 변경으로 개발 속도, 유연성, 안정성을 확보해라
- 리팩터링을 일상 업무에 포함시켜 기술 부채가 쌓이지 않도록해라.
- 리팩터링 연습하면 코드에 대한 독특한 관점을 얻어 더 나은 해결책을 찾을 수 있다.
'독서' 카테고리의 다른 글
책01. 파이브라인즈 오브 코드 06. 데이터보호 (0) | 2024.03.03 |
---|---|
책01. 파이브라인즈 오브 코드 05. 유사한 코드 융합하기 (1) | 2024.02.18 |
책01. 파이브라인즈 오브 코드 04. 타입 코드 처리하기 (1) | 2024.02.07 |
책01. 파이브라인즈 오브 코드 03. 긴코드 조각내기 (1) | 2024.02.01 |
책01. 파이브 라인즈 오브 코드 01. 리팩토링 리팩토링 (0) | 2024.01.31 |