이 글은 "실용주의 프로그래머" 도서를 읽고 내용과 느낌을 정리한 글입니다 :) 완벽한 소프트웨어는 만들 수 없다.- 이것을 기정 사실로 받아들이지 않는다면, 불가능한 꿈을 뒤쫓으며 시간과 노력을 낭비하게 될 것이다.- 이 암울한 현실을 어떻게 장점으로 바꿀 수 있는가가 본 장의 주제다.- 우리는 다른 사람의 코드와 접촉하고, 적절하거나 혹은 그렇지 못한 입력을 받는다. 그래서 방어적으로 코딩하도록 가르침 받았다.- 실용주의 프로그래머들은 자기 자신 역시 믿지 않는다. 따라서 그들은 '계약에 의한 설계'를 이용한다. 계약에 의한 설계- 프로그램의 정확성을 보장하기 위해 모듈들의 권리와 책임을 문서화하고 검증하는 것이 DBC(계약에 의한 설계: Design By Contract)의 핵심이다.- 선행조건(p..
이 글은 "실용주의 프로그래머" 도서를 읽고 내용과 느낌을 정리한 글입니다 :) 장인이 되어라- 장인처럼 자신의 도구 상자에 주기적으로 뭔가를 추가하게 될 것을 예상하라- 일을 하는데 더 나은 방법이 없는가 늘 주변을 살펴라- 신참들의 실수는 특정 통합 개발 환경(IDE) 같은 전동도구 하나만 고집하는 실수를 저지른다. IDE가 강제하는 편리함의 울타리 바깥에서도 능숙하게 작업할 수 있어야 한다. 유일한 방법은 기본 도구 세트를 늘 쓸 수 있도록 예리하게 유지하는 것이다. 프로그래머의 기본 재료는 지식이다.- 지식을 저장하는 최고의 포맷이 일반 텍스트(plain text)이다.- 일반 텍스트는 우리가 원하는 거의 모든 도구를 이용해서, 지식을 조작할 수 있게 해준다. 지식을 일반 텍스트로 저장하라.- 일..
이 글은 "실용주의 프로그래머" 도서를 읽고 내용과 느낌을 정리한 글입니다 :) 중복의 해악- 인공지능을 무력화 하는 방법은 두 개의 모순적인 지식을 제공하는 것이다. == 동일한 원리가 우리의 코드를 무너뜨리는데 효과적이다.- 우리는 지식을 수집하고 조직하고 유지하며 통제한다. 또한 명세서에 지식을 문서화하고 실행 코드에서 지식이 생명력을 갖게한다. 불행히도 지식은 고정적이지 않다. 이 때문에 유지보수는 애플리케이션이 출시 되었을 때 시작되는 것이 아니라 프로그래머들은 늘 유지보수 모드에 있다.- DRY(Don't Repeat Yourself)를 따르지 않는다면 유지보수의 악몽에 시달릴 것이다.- DRY를 따르지 않는다면, 남은 방법은 똑같은 것이 두 군데 이상에 표현하는 것이고 이것은 단지 언제 잊어..