본문 바로가기

자기계발/독서

실용주의 프로그래머 정리

반응형

1. 고양이가 내 소스코드를 삼켰어요

* 코드를 백업하지 않고 컴퓨터를 포맷시켰을 때, 고양이가 소스코드를 삼켰다고 하는 변명이 과연 통할까?

* 자신이 모르거나 실수한 것을 인정하기를 두려워하지 말자.

* 변명을 하기보단 인정을 하고, 대안을 제시하자.

 

11. 프로토타입과 포스트잇

* 이전에 해본 적 없는 것, 기술적으로 모호한 부분, 실험적인 것, 심적으로 뭔가 불안한 것 등이 프로토타입 대상이 된다.

* 프로토타입은 꼭 코드가 아니어도 된다. 화이트보드에 포스트잇을 붙이는 것도 충분한 프로토타입이 될 수 있다.

* 프로토타입을 통해 얻는 것은 코드가 아니라, 경험이다.

 

33. 리팩터링

* 리팩터링은 고통을 관리하는 것이다. 

* 잘 동작하는 코드를 해체하고 다시 맞추는 것은 고통스러운 일이다. 하지만 무언가 문제가 있음에도 방치한다면, 그것은 더욱 큰 고통으로 다가올 것이다. 주저하면 안된다. 언제나 바로 지금이 최적기이다.

* 리팩터링을 주저하게 되는 것은 예상하지 못한 사이드 이팩트이다. 이를 방어하기 위한 최고의 방패는 꼼꼼하게 작성된 테스트 코드이다. 나를 믿기 어렵다면, 잘 작성된 테스트 코드를 믿자.

 

 

34. 테스트하기 쉬운 코드

* 각 단위의 계약을 파악하고, 테스트 코드를 작성하라.

* 각 단위를 서로 연결하기 전에 철저하게 테스트해야한다.

* 단위를 합친 모듈은 해당 모듈의 계약만 확인하면 된다. 구성하고 있는 하위 단위기능은 검증하지 않아도 된다. 하위 단위의 테스트는 하위 단위에서 테스트하고 있기 때문이다.

* 테스트 코드는 찾기 편한 위치에 두어라. 그렇지 않으면 사용되지 않는다.

* 내가 테스트하지 않는다면, 사용자가 테스트하게 될 것이다.

반응형