본문 바로가기

Effective Programming

소스를 읽는 법을 배우게 의사소통의 양상을 잘 분석해보면 동료 인간이 알아듣고 이해할 수 있게 이치를 닿는 글을 작성하는 것은 해석기나 컴파일러가 불평하지 않는 코드를 작성하는 것보다 훨씬 더 어려운 일인 것처럼 보인다. 그렇기 때문에 코딩과 관련된 문서가 대부분 그렇게 형편없이 작성돼 있는 것일지도 모른다. 사람을 대상으로 글을 쓰는 것이 기계를 대상으로 코드를 쓰는 것보다 훨씬 어렵기 때문에 문서라는 것은 앞으로 펼쳐질 미래에도 계속해서 형편없는 것으로 남아 있을 것이다. 글로 적힌 문서야 어떻게 말하고 있든 결국 소스코드야 말로 최종적인 진실을 말할 뿐만 아니라 당신이 찾을 수 있는 모든 문서 중에서 가장 확실하고 최신 정보를 담고 있는 문서의 역할을 수행하기 때문이다. 우리는 소스코드에 접근할 필요가 있다. 우리는 필요한.. 더보기
주석 없이 코딩하기 일반 개발자들은 코드 자체를 통해 이야기해야 하는 상황에서 손쉽게 코드 대신 주석으로 이야기를 전해주려고 한다. 좋은 주석을 작성하려면 좋은 글을 쓸 줄 아는 사람이 돼야 한다. 주석은 컴파일러를 위한 코드가 아니라 다른 사람에게 의미를 전달하기 위한 단어들이다. 나는 동료 프로그래머들을 사랑하지만 그렇다고 해서 우리 같은 사람들이 다른 사람과 의사소통을할 때도 최고의 능력을 발휘한다고 말하기 어렵다. 우리가 코드가 안에 명확하고 이해하기 쉬운 주석을 달 것이라고 기대하는 사람들인가? 차라리 컴파일러를 위한 글쓰기에 집중하는 것은 어떨까? 정말 어쩔 수 없는 경우에 한해서만 주석을 다는 것이다. 더보기
톱날 갈기 톱날을 가는 것은 프로그래밍이 아닌 다른 할 일들에 시간을 투자하는 것이지만 이론적으로는 당신을 더 나은 프로그래머로 만들어준다.다음 내용을 참고해보자 어떤 사람이 산속에서 우연히 벌채노동자를 만났다. 노동자는 땀을 뻘뻘 흘리면서 톱질을 해댔지만 일에는 별로 진전이 없었다. 자세히 보니 톱은 빵에 버터를 바르는 버터 칼처럼 무디다는 사실을 알게 되었다. 그래서 노동자에게 말을 걸었다. "정말 열심히 일하는 모습은 좋은데요 톱의 날이 너무 무딘데요" 그러자 노동자는 "저도 압니다. 하지만 톱날을 갈고 있을 만큼 한가하지가 않아서요." 지나치게 톱날을 벼리거나 혹은 아무 목적 없이 무작정 톱날을 벼리는 것은 또 다른 형태의 게으름에 해당할지도 모른다. 하지만 아무런 관심이 없는 프로그래머가 있다면 그 사람의.. 더보기