📚 노마드 개발자 북클럽 aka. 노개북 - 실용주의 프로그래머 3주 완독 챌린지의 기록을 남긴다.
챌린지 이동
7장. 코딩하는 동안
우연에 맡기는 프로그래밍을 하지 말라.
마침내 컴포넌트가 화면에 나타나더라도 프레드는 이제 코드로 돌아가 여기서 불필요한 호출을 제거하려고 하지 않는다. "이제 돌아가는 거니까, 그래도 놔두는 것이 좋을거야.."(...) 지금 잘 작동하는 데 괜히 건드렸다 일을 만들 필요가 있을까? 우리는 그래야 할 몇 가지 이유를 생각해낼 수 있다. (p.275)
- 정말로 제대로 돌아가는 것이 아닐지도 모른다. 우리에게만 그런 것처럼 보일 수도 있다.
- 여러분이 의존하는 조건이 단지 우연인 경우도 있다. 다른 상황(예를 들어 화면 해상도가 다른 경우 등)에서는 이상하게 작동할지도 모른다.
- 문서화되지 않는 동작은 라이브러리의 다음 릴리스에서 변경될 가능성이 있다.
- 불필요한 추가 호출은 코드를 더 느리게 만든다.
- 추가로 호출한 루틴 때문에 새로운 버그들이 코드에 들어올 가능성이 있다.
일찍 리팩터링하고, 아주 리팩터링하라.
코드를 다시 작성하기, 다시 작업하기 다시 설계하기는 총괄해서 '리팩터링'이라고 알려져 있다. (p.292)
여러분의 코드를 리팩터링하는 것 - 기능을 이러저리 옮기고 이전에 내린 결정을 갱신하는 것 - 은 사실 고통 관리pain management 를 실천하는 것이다. 현실을 피하지 말자. 소스코드를 이곳저곳 변경하는 것은 굉장히 고통스러운 작업일 수도 있다. (p.293)
테스트를 염두에 두고 설계하라.