반응형
가독성의 기본 정리
코드는 다른 사람이 그것을 이해하는 데 들이는 시간을 최소화하는 방식으로 작성되어야 한다.
이해를 위한 시간
- 다른 사람이 내가 작성한 코드를 읽고 이해하는 데 걸리는 시간. (다른 사람은 미래의 내가 될 수도 있다.)
- 좋은 코드를 위해 최소화해야 하는 값.
어떤 사람이 내 코드를 완전히 이해한다는 것은 그가 코드를 자유롭게 수정하고, 버그를 짚어내고, 수정된 내용이 내가 작성한 다른 부분의 코드와 어떻게 상호작용하는지 알 수 있을 때 해당 코드를 이해하고 있는 것이다.
분량이 적으면 항상 더 좋은가?
- 분량이 적다고 해서 항상 더 좋은 코드가 아니다.
다음의 한 줄짜리 코드는
assert((!bucket = FindBucket(key))) || !bucket -> IsOccupied())
아래의 코드를 이해할 때보다 더 많은 시간이 걸릴 수 있다.
bucket = FindBucket(key);
if(bucket != NULL){
assert(!bucket -> IsOccupied());
}
- 주석 처리는 '코드를 더하는' 행위지만 코드를 더 빨리 이해하게 도와준다.
- 적은 분량으로 코드를 작성하는 것보다 이해를 위한 시간을 최소화하는 게 더 좋은 목표다.
이해를 위한 시간은 다른 목표와 충돌하는가?
- 코드의 효율성, 잘 구성된 아키텍처, 텍스트의 용이성 등과 같은 제약 조건보다 코드의 가독성이 가장 중요하다.
- 잘 정리된 코드보다 정리되지 않았지만 이해하기 쉬운 코드가 더 좋은 코드이다.
- 출처 : 책 <읽기 좋은 코드가 좋은 코드다> 더스틴 보즈웰, 트레버 파우커 저
반응형