실용주의 프로그래머 - 교보문고
The Pragmatic Programmer숙련공에서 마스터로프로그래밍은 대체로 머리로 하는 일이지만 한편으로는 몸에 새겨져야 하고 때로는 그 이상의 통찰을 발휘해야 하는 상황에 맞닥뜨리게 되는 복합적인
www.kyobobook.co.kr
실용주의 편집증
완벽한 소프트웨어는 만들 수 없다.
위의 말은 사실입니다. 완벽한 소프트웨어는 존재하지 않기 때문입니다. 그리고 이것을 기정 사실로 받아들이지 않는다면, 불가능한 꿈을 뒤쫓으며 시간과 노력을 낭비하게 될 것입니다. 그래서 우리는 방어적으로 코딩해야합니다. 코딩을 하는 도중 조금이라도 의심가는 부분이 있다면 주어진 모든 정보를 확인해야 합니다.
21. 계약에 의한 설계
계약에 의한 설계란 단순하지만 강력한 기법으로, 프로그램의 정확성을 보장하기 위해 소프트웨어 모듈들의 권리와 책임을 문서화 하는데에 초점을 맞춥니다. 정확한 프로그램이란 무엇인가? 스스로 자신이 하는 일이라고 주장하는 것보다 많거나 적지도 않게 딱 그만큼만 하는 프로그램을 말합니다. 이 주장을 문서화하고 검증하는 것이 계약에 의한 설계의 핵심입니다.
22. 죽은 프로그램은 거짓말을 하지 않는다.
개발을 진행하면서 에러가 발생하였을 때 우리는 여러 방면에서 원인을 찾기 위해서 노력합니다. 하지만 때때로 '그런 일은 절대 일어날 리 없어' 라는 생각에 애써 무시하고 지나는 부분이 생기기도 합니다. 하지만 언제나 모든 에러는 정보를 주고 예외는 없이 모든 가능성을 생각해야 합니다.
망치지 말고 멈추라
가능한 빨리 문제를 발견하게 되면, 좀 더 일찍 시스템을 멈출 수 있다는 이득이 있습니다. 게다가 대부분의 상황에서 프로그램을 빨리 멈추는 것이 할 수 있는 최선일 때가 많습니다. 자바에서의 RuntimeException이 이와 같은 예입니다. 분명 실행 중인 프로그램을 그냥 종료해 버리는 것은 때로 적절치 못할 수 있습니다. 그렇지만 프로그램에서 불가능한 무언가 발생했다는 것을 발견했다면, 이 프로그램은 더 이상 유효하지 않다고 할 수 있습니다. 이 시점 이후의 모든 일이 수상쩍은 것이 되는 것 입니다. 일반적으로, 죽은 프로그램이 입히는 피해는 절름발이 프로그램이 끼치는 것 보다 훨씬 덜 한 법입니다.
23. 단정적 프로그래밍
코딩을 할 때 '이런 일은 절대 일어날 리 없어'라는 생각이 들 때야말로 그 생각을 확인할 수 있는 코드를 추가하는 것이 좋습니다. 단정문을 사용하는 것 입니다.
24. 언제 예외를 사용할까
프로그램을 만들 때, 예외 처리는 많은 도움을 줍니다. 그러나 이 예외를 언제 사용하는지 아는 것이 중요합니다. 예외는 의외의 상황을 위해서 남겨두어야 합니다. 잡히지 않는 예외는 프로그램을 종료시킬 것이라고 가정하고, '모든 예외 처리 부분을 제거해도 이 코드가 여전히 실행될까?' 라고 자문해 봐야 합니다. 만약 그 답이 '아니오' 라면 아마도 예외가 비 예외적인 상황에서 사용되고 있는 것으로 볼 수 있습니다.
25. 리소스 사용의 균형
우리는 코딩할 떄에 모든 리소스를 관리합니다. 그리고 대개의 경우, 리소스 사용은 예측할 수 있는 패턴을 따릅니다. 리소스를 할당하고, 사용한 다음, 해제합니다. 여기서 간단한 팁을 하나 소개합니다.
시작한 것은 끝내라.
이 팁은 보이는 것 처럼 간단하여 많은 상황에서 쉽게 적용됩니다.
'Book' 카테고리의 다른 글
[독서] 더 빠르게 실패하기, 리뷰 (0) | 2025.01.15 |
---|---|
[독서] 실용주의 프로그래머 정리 - 05 (0) | 2022.04.24 |
[독서] 실용주의 프로그래머 정리 - 03 (0) | 2022.04.11 |
[독서] 실용주의 프로그래머 정리 - 02 (0) | 2022.04.08 |
[독서] 실용주의 프로그래머 정리 - 01 (0) | 2022.04.06 |