본문으로 건너뛰기

실용주의 프로그래머(The Pragmatic Programmer)

· 약 2분
Seokjae Lee
Software engineer

원문: https://doljae.tistory.com/292

최근에 20주년 기념판이 나왔다고 해서 읽어본 책.

클린 코드가 코드에 포커스를 둔 책이라면 이 책은 개발 프로젝트를 전반적으로 다룬다. 몇 가지 기억에 남는 키워드와 개인적인 생각을 정리해보면...

> 시작 피로(start up fatigue) > 한꺼번에 많은 것을 바꾸려면 필연적으로 발생하는 많은 준비 과정이 모두를 지치게 한다. 작은 부분을 고르고 그것을 잘 개발하는 것으로 시작해 변화의 촉매가 되어보자.

> 상속세 > 프레임워크 레벨로 사용하는 오픈소스는 확장성을 위해 어쩔 수 없다고 하지만 2단계 이상의 상속 구조를 특정 상황에 대해 직접 개발해 사용하는 것에는 의문이 든다. (특히 새로 만드는 프로젝트가 아닌 기존 프로젝트의 신규 기능을 개발할 때!)

> 테스트의 목표 > 테스트 코드를 작성하다 보면 종종 이 테스트의 목적을 잊게 된다. 단순히 커버리지만 올리는 코드는 의미가 없다. 테스트하고자 하는 게 무엇인지, 내가 작성한 코드가 그것을 테스트하고 있는지 생각하자.

> 이름 짓기 > 변수명 고민하는 일은 실제로 필요한 일이다. 좋은 이름 1개가 불필요한 주석 3줄을 없앤다고 생각하고 신중하게 지어보자. 어렵지만 살짝 미래시를 고려해 짓는다면 더 좋다. 실 서비스로 나가게 되면 바꾸기 어렵거나 바꾸지 못할 수도 있다!

> 자신만의 방법에서 빠져나오라 > 문제를 해결하는 법은 굉장히 많다. 내가 생각하고 있는 방법이 유일한 방법이라는 생각을 버리자. A를 개선하기 위해 B를 주의 깊게 살펴보고 결과적으로 C를 수정하는 것이 가장 효율적인 선택일 수 있다.

> 버전 관리, 가차 없는 테스트, 전체 자동화 > 개발자가 문제를 해결하는데 집중을 하기 위해선 가능한 부분에 대해선 자동화를 해야 한다. 수기로 반복 작업하는 것이 정말 없는지 생각해보고, 그것을 자동화할 수 있는 방법에 대해 찾아보자.

생각해봄직한 내용도 많고 술술 읽히기까지 해서 재밌었다.