Engineering WIKI/Book27 리팩토링 2판 - Chapter 6 (기본적인 리팩터링) 6.1 함수 추출하기 함수 추출하기는 내가 가장 많이 사용하는 리팩터링 중 하나다 (여기서 '함수function'라고 표현했는데 객체 지향 언어의 메서드method나 절차형 언어의 프로시저procedure/서브루틴subroutine에도 똑같이 적용된다.) p.159 솔직히 function/method 개념 정의를 못하겠습니다... 그래서 개념정의를 찾아봤습니다. Zedd 님의 깔끔한 설명을 가져왔습니다. '목적과 구현을 분리'(...중략...) 코드의 목적(강조)과 구현(반전) 사이의 차이가 그만큼 컸기 때문이다. 이 예제는 터미널 프로그램에서 UI 강조를 하는 코드인데 강조를 위해서 흑백 반전을 합니다. 흑백 반전이니까 구현 코드는 reverse() 그러나 UI를 강조한다는 의미를 살리기 위해서 hig.. 2022. 10. 20. 리팩토링 2판 - Chapter 4 (테스트 구축하기) 오늘은 리팩토링 챕터 4 테스트 구축하기를 읽어보겠습니다. 책을 지금까지만 읽어도 테스트 코드가 리팩토링에 중요한 요소인 것을 알 수 있습니다. 리팩토링을 하는 것은 겉보기 동작은 그대로 유지한 채 내부의 구현을 개선하는 작업입니다. 동작이 동일하다는 것을 검증할 수 있다면 훨씬 더 자신있게 내부 구현을 수정할 수 있습니다. 리팩토링에 대한 열망은 항상 있으나, 자신있게 진행했던 적은 많지 않았습니다. 항상 변경에 대한 두려움을 가지고 있었고 잘 작동하는 코드를 굳이 개선할 필요는 없다는 의견에 꽤나 마음이 쏠려 있었습니다. 이번 챕터를 읽으면서 두려움을 지루함으로 바꾸는 계기가 되면 좋겠습니다. 1. 자가 테스트 코드의 가치 실제로 코드를 설계하는 시간 보다 디버깅 하는 시간이 훨씬 더 많이 소요됩니다.. 2022. 10. 20. 리팩토링 2판 - Chapter 3 (코드에서 나는 악취) 저자는 프로그래밍 미학이라는 모호한 개념보다 악취라는 표현이 낫다고 표현함. 악취가 나는 코드도 패턴이 있음 기이한 이름 이름만 보고도 각각이 무슨 일을 하고 어떻게 사용해야하는지 명확히 알 수 있도록 엄청나게 신경 써서 이름을 지어야 한다. 네이밍이 프로그래밍 활동의 많은 부분을 차지하는 것을 알고 있었지만, 경험이 많은 개발자들도 동일한 어려움을 겪는다는 사실에 조금 위로가 되기도 함... 마땅한 이름이 떠오르지 않는다면 설계에 더 근본적인 문제가 숨어 있을 가능성이 높다. 이 문장은 새로웠음! 아무리 노력해도 적당한 이름이 나오지 않는다면 설계가 잘못되지 않았나 돌아보는 것도 좋은 방법. 적절한 관심사 분리를 해야 좋은 이름도 지을 수 있을 것 같다. 중복 코드 긴 함수 우리는 주석을 달아야 할 만.. 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. 노마드 북클럽 - 클린코드 #코딩 #개발자 #노마드북클럽 #노개북 2022. 2. 19. 이전 1 2 3 4 5 다음