본문 바로가기

리팩터링 2판3

리팩토링 2판 - Chapter 7 (캡슐화) 모듈을 분리하는 가장 중요한 기준은 아마도 시스템에서 각 모듈이 자신을 제외한 다른 부분에 드러내지 않아야 할 비밀을 얼마나 잘 숨기느냐에 있을 것이다. p.235 클래스는 본래 정보를 숨기는 용도로 설계되었다. p.235 7.1 레코드 캡슐화하기 저장하는 용도로는 레코드보다 객체를 선호하는 편이다. p.236 객체를 사용하면 어떻게 저장했는지를 숨긴 채 세 가지 값을 각각의 메서드로 제공할 수 있다. 사용자는 무엇이 저장된 값이고 무엇이 계산된 값인지 알 필요가 없다. p.237 덩치 큰 데이터 구조를 다룰수록 쓰기 부분에 집중한다. p.243 setter 부분에서 데이터의 변화가 일어나기 때문에 가변 데이터라면 쓰기 부분에 집중해야 한다. 데이터 구조의 읽기 전용 프락시를 반환하는 방법도 있다. 클라.. 2022. 10. 20.
리팩토링 2판 - Chapter2 요약 리팩터링 2판 자바스크립트로 예시가 되어 있음 리팩터링 패러다임은 언어를 초월하여 의미가 있음 그러나 실제 활용은 언어에 귀속됨 배워서 어디에 써먹을까? 리팩터링이 필요한 이유를 설득할 수 있음 책 한권 읽는다고 설득할 수 있는 것은 아님 적어도 물꼬는 틔워줄 수 있음 리팩터링 중 발생하는 고민을 일정량 줄일 수 있다. 간결한 코드가 좋을까, 성능이 우월한 방법이 좋을까? 어느정도의 성능 감소를 용인할 수 있을까? 깔끔한 코드와 디버깅이 용이한 코드 중 무엇을 할까? 언제 리팩터링 할까? 냄새나는 코드 냄새가 얼마나 나야 리팩터링 해야하나? 훨씬 깔끔한 코드를 작성할 수 있음 리팩터링을 수정하는 것이지만, 창조할때도 유용 동료의 Code Review 할 때 동료와 팀의 생산성에 기여할 수 있다! 스터디에.. 2022. 10. 20.
리팩토링 2판 - Chapter 1 1.1 ~ 1.4 가장 먼저 변수의 이름을 더 명확하게 바꾸기 매개변수의 역할이 뚜렷하지 않을 때는 부정관사(a/an)을 붙인다. 추출작업 전에는 지역변수부터 제거 1.5 ~ 1.8 단계 쪼개기 함수 추출하기로 뽑아내야한다. 2.1 ~ 2.4 리팩터링 : 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법 리팩터링을 하는 이유 → 리팩토링하면 소프트웨어 설계 좋아진다. 중복 코드 제거는 설계 개선 작업의 중요한 한 축. 소프트웨어를 이해하기 쉬워진다. 버그를 쉽게 찾을 수 있다. 프로그래밍 속도를 높일 수 있다. 언제 리팩터링해야 할까? 처음에는 그냥 한다. 비슷한 일을 두 번째로 하게 되는 경우 비슷한 일을 세 번째 하게 되는 경우. 코드 리뷰의 결.. 2022. 10. 20.