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