[독서] 실용주의 프로그래머
저자 : 데이비드 토머스, 앤드류 헌트
실용주의 프로그래머는 쉽게 말해 개발자들이 알아야하는 내용들을 친절하게 설명해주고 프로그래밍 관련 지식들을 담고 있는 책이다.
아래 내가 느꼈던 실용주의 프로그래머의 내용을 간략히 소개하고자 한다.
1. 책임 지기
다른 사람 혹은 다른 무언가를 비난하거나 변명을 만들지 말라, 모든 문제를 외부사람에게, 프로그래밍 언어 탓으로, 경영진과 동료 때문이라고 떠넘기지 말고 문제에 있어 실수를 인정하고 문제 해결에 집중하자.
2. 못 본 척하지 말기
나쁜 설계, 잘못된 결정 혹은 형편없는 코드 등이 이 책에선 깨진 창문이라고 말한다.
잘못된 소스, 잘못된 문제를 보고 못 본 척 넘어가지 말고 즉시 고쳐라.
고칠시간이 없다면 창문이 깨지지 않도록 이라도 해두자.
더 이상의 손상을 예방하기 위해 어떤 조치든 취하고 상황을 잘 관리하고 있음을 보여줘라. 방치는 다른 어떤 것보다 부패를 더 가속화 시킨다.
3. 좋은 설계의 핵심
가독성 있는 설계를 하자. 프로그램을 짤 때 좋은 설계를 할 수 있도록 어느정도 의식적으로 노력해야한다.
언제든지 바꾸기 쉽게 코드를 짜는 게 중요하다.
4. 디버깅 사고방식
프로그램의 버그를 발견하거나 버그를 신고한 경우에 그럴리가 없는데 라는 생각은 하지말고
언제든 일어날 수 있으며, 실제로 일어났기 때문에 원인을 찾아 해결하려고 노력하자.
5. 테스트 문화
모든 소프트웨어는 언젠가 테스트하게 된다. 우리가 하지 않으면 결국 사용자들이 하게 된다.
그러니 철저하게 테스트하고 계획을 세우고 테스트 하는 것이 좋다.
나중에 테스트는 결국 하지 않았다는 소리와 같다.
6. 자신만의 방법에서 빠져 나오라
무언가를 할 때 아무리 생각해도 방법이 떠오르지 않는 경우가 있다.
다른 일을 할 때, 오히려 딴짓을 할 때 의식적으로 노력한 사람보다 복잡한 문제 해결 과제를 더 잘 해낼 수 있고,
아니면 누군가와 이야기를 해서 깨달음을 얻을 수도 있다.
7. 함께 일하기
혼자 일하지 말고, 개발에서는 짝 프로그래밍이나 몹 프로그래밍이라 불리는 방식이 있다.
한사람이 코드를 입력하면 그와 짝이 된 다른 사람 혹은 여러명의 동료들이 조언하고 고민하며 함께 문제를 푸는 것이다. 끝없는 회의와 제안서 보내기 보다 더 유용성에 가치를 둔 방식이다.
8. 애자일
스타트업 이라면 어떤 회사라도 애자일 방식을 선호한다. 빠르게 일처리를 하고 개인과의 상호작용으로 체계화된 문서 보다는 작동하는 소프트웨어로 계획을 따르기 보단 변화에 대응하여 방식을 말한다.
끝으로 나는 이 책을 읽고 내가 개발자로서 간과하고 지나간 내용들, 무시하면서 작업 했던 나의 결과물 들이 후에 어떻게 비춰질 지 다시한번 느끼게 해준 책이라고 생각한다.