IT 고전(?)인 「실용주의 프로그래머」 를 읽었다.
과거 선배들이 적극 추천을 해주어 사놓긴 했는데 드디어 읽게 되었다.
바로 전에 읽은 「조엘 온 소프트웨어」 같이 프로그래밍을 하는데에 있어서 프로그래머가 지향해야할 방법들에 대해서 기술을 하였지만 「조엘 온 소프트웨어」는 블로그인 만큼 가볍고 재미있는 문체를 사용했다면 「실용주의 프로그래머」는 원론적인 이야기가 많았다.
그만큼 지루했다는 말도 될 수 있을 것 같다. ㅋㅋ 그리고 번역과정에서 뭔가 어색한 부분이 종종 있어서 읽고 지나가도 다시 한번 읽게 되는 부분이 적지 않았던 것 같고 이 책 역시 오래전(2005년)에 쓰여진 만큼 호랑이 담배피던 시절 이야기로 잘 이해가 가지 않는 부분도 있었다.
(02학번이라 05년도 내용이면 웬만큼 지식이 있어야 할것도 같지만.... ㅡㅡ;)
암튼 당연히 하고 있는 것들도 많고, 당연하지만 실제로는 실행하지 못하고 있는 것들도 있는데 이 책에서 팁이라고 정한 부분만 나열해 본다.
- 자신의 기술에 관심과 애정을 가져라.
- 자신의 일에 대해 생각하면서 일하라!
- 어설픈 변명을 만들지 말고 대안을 제시하라.
- 깨진 창문을 내버려두지 말라.
- 변화의 촉매가 되라.
- 큰 그림을 기억하라.
- 품질을 요구사항으로 만들어라.
- 지식 포트폴리오에 주기적으로 투자하라.
- 읽고 듣는 것을 비판적으로 분석하라.
- 무엇을 말하는가와 어떻게 말하는가 모두 중요하다.
- DRY - 반복하지 마라
- 재사용하기 쉽게 만들라.
- 관련 없는 것들 간에 서로 영향이 없도록 하라.
- 최종 결정이란 없다.
- 목표물을 찾기 위해 예광탄을 써라.
- 프로토타입을 통해 학습하라.
- 문제 도메인에 가깝게 프로그래밍하라.
- 추정을 통해 놀람을 피하라.
- 코드와 함께 일정도 반복하며 조정하라.
- 지식을 일반 텍스트로 저장하라.
- 명령어 셸의 힘을 사용하라.
- 하나의 에디터를 잘 사용하라.
- 언제나 소스코드 관리 시스템을 사용하라.
- 비난 대신 문제를 해결하라.
- 디버깅을 할 때 당황하지 마라.
- 'select'는 망가지지 않았다.
- 가정하지 마라. 증명하라.
- 텍스트 처리 언어를 하나 익혀라.
- 코드를 작성하는 코드를 작성하라.
- 완벽한 소프트웨어는 만들 수 없다.
- 계약에 따른 설계를 하라.
- 일찍 작동을 멈추게 하라.
- 단정문을 사용해서 불가능한 상황을 예방하라.
- 예외는 예외적인 문제에 사용하라.
- 시작한 것은 끝내라.
- 모듈간의 결합도를 최소화하라.
- 통합하지 말고 설정하라.
- 코드에는 추상화를, 메타데이터에는 세부 내용을.
- 작업흐름 분석을 통해 동시성을 개선하라.
- 서비스를 사용해서 설계하라.
- 언제나 동시성을 고려해 설계하라.
- 모델에서 뷰를 분리하라.
- 칠판을 사용해 작업흐름을 조율하라.
- 우연에 맡기는 프로그래밍을 하지 말라.
- 여러분의 알고리즘의 차수를 추정하라.
- 여러분의 추정을 테스트하라.
- 일찍 리팩터링하고, 자주 리팩터링하라.
- 테스트를 염주에 두고 설계하라.
- 소프트웨어를 테스트하라. 그렇지 않으면 사용자가 테스트하게 될 것이다.
- 자신이 이해하지 못하는, 마법사가 만들어준 코드는 사용하지 말라.
- 요구사항을 수집하지 말고 채굴하라.
- 사용자처럼 생각하기 위해 사용자와 함께 일하라.
- 구체적인 것보다 추상적인 것이 더 오래간다.
- 프로젝트 용어사전을 사용하라.
- 생각의 틀을 벗어나지 말고, 틀을 찾아라.
- 준비가 되었을 때 시작하라.
- 어떤 일들은 설명하기보다 실제로 하는 것이 더 쉽다.
- 형식적 방법의 노예가 되지 마라.
- 비싼 도구가 더 좋은 설계를 낳지는 않는다.
- 팀을 기능 중심으로 조직하라.
- 수작업 절차를 사용하지 말라.
- 일찍 테스트하고, 자주 테스트하라. 자동으로 테스트하라.
- 모든 테스트가 통과하기 전엔 코딩이 다 된게 아니다.
- 파괴자를 써서 테스트를 테스트하라.
- 코드 커버리지보다 상태 커버리지를 테스트하라.
- 버그는 한 번만 잡아라.
- 환국어도 하나의 프로그래밍 언어인 것처럼 다루라.
- 문서가 애초부터 전체의 일부가 되게하고, 나중에 집어넣으려고 하지 말라.
- 사용자의 기대를 부드럽게 넘어서라.
- 자신의 작품에 서명하라.
댓글 없음:
댓글 쓰기