독서

[리팩토링] 1장

오렌지색 귤 2023. 4. 4. 22:56
반응형

부정관사 사용하는 이유가 뭘까?

(p.34)

 

자바 스크립트는 동적 타입 언어이기 때문에 타입을 변수명으로 쉽게 확인할 수 있게 된다

실제로 헝가리안 표기법을 사용하는 팀이 있다고 한다

 

 

playFor 함수는 단순히 인덱스를 통해 배열의 값을 가져오는 것 같은데, 함수 추출하는 의미가 무엇일까?

(p.35)

 

1. 함수로 추출하는 이유는 변경점을 최소화하기 위해서

2. 추상화 레벨을 맞추기 위해서 (인덱스에 접근하는 것은 낮은 레벨이다)

 

 

for 루프 한번이면 될 일을 for 루프 두번으로 돌리는 것이 성능에는 크게 상관이 없다

(p.39)

 

상관 있더라도 리팩토링과 성능 개선은 분리해서 접근하는 것이 맞다

실제 테스트 결과 O(n), O(4n)이 1.5~2배 정도 차이난다

컴파일러 성능이 많이 좋아졌기에 클린 코드를 작성하는 것이 더 낫다

 

 

책의 예제에서는 지역 변수를 거의 모두 인라인하는데, 다들 이렇게 작업하는지?

 

긴 함수를 쪼갤 때마다 지역 변수를 최대한 제거해서 추출 작업을 간단하게 할 수 있다

유효범위를 신경 써야 할 대상이 줄어들게 된다

 

 

각 팀에서 커밋은 얼마나 잘게 나누는가?

 

팀원 1 : 피쳐 브랜치에서 커밋을 잘게 나누고, origin으로 푸시하기 전에 squash를 통해 합치기도 한다. 로컬에서는 변경점을 작게 만들지만, 이를 모두 푸시하게 되면 다른 팀원들이 git graph에서 불편함을 느낄 수도 있을 것 같다

팀원 2 : 거의 나누지 않는다

팀원 3 : 머큐리얼을 사용해서 커밋을 크게 크게하는 것이 익숙하다

 

 

매일 지속적 통합, 가능한 것인가?

 

실제로 매일 지속적 통합을 하는 팀은 없었다

오픈소스나 테스트 코드가 상당히 잘 짜여져있는 개발 문화가 훌륭한 팀에서나 가능할 듯하다

반응형