강지훈
가입: 2008년 9월 2일 올린 글: 291 위치: 302동 312-2호
|
올려짐: 2013년9월14일 0:21 주제: |
|
|
일단 기본적으로 읽기 쉬운 코드가 무엇인지에 관해 사람마다 다른 견해가 있을 수 있습니다. 하지만 어떤 공통의 (혹은 실용적인) 기준이 있다고 생각합니다. 저는 읽기 쉬운 코드라는건 코드의 목적과 코드가 작동하는 원리가 명확히 드러나는 코드를 말한다고 생각합니다.
1) 코드의 목적:
예를 들어
코드: |
(define (aa a b)
...a long code that results in gcd of a and b...)
|
이런 코드는 코드의 목적이 무엇인지 분명치 않습니다. "aa"라는 함수명은 아무 것도 알려주지 않으니까요. 이런 경우
코드: |
; gcd: greatest common divisor of two nonnegative numbers
(define (gcd lhs rhs)
...)
|
라고 작성했으면 훨씬 읽기 쉬울 것입니다. 함수 이름으로 코드의 목적을 잘 드러낼 수 없는 경우나, 인자 (lhs rhs) 가 무엇을 의미하는지 직관적이지 않은 경우, 주석은 코드를 읽는데 매우 큰 도움이 됩니다.
2) 코드가 작동하는 원리:
왜 코드가 명시된 목적대로 작동하는지 그 이유가 드러나는 코드가 읽기 좋은 코드입니다. 예를 들어
코드: |
; gcd: greatest common divisor
; 두 수 lhs, rhs의 gcd는 (lhs-rhs), rhs의 gcd와 같다.
; 참고: Euclidean division
(define (gcd x y)
(gcd (- x y) y))
|
는 작동 원리를 잘 드러내는 읽기 좋은 코드입니다. (참고: 위 코드는 gcd를 구하는 올바른 코드가 아닙니다!)
그렇다고 해서
코드: |
(define (plus a b) (+ a b)) ; +는 더하기이므로, plus는 두 수의 합을 나타내는 함수이다
|
라는 수준의 주석을 다는 것은 좋지 않습니다. 주석에 해당하는 내용은 이미 코드에 (+ a b) 잘 드러나 있기 때문입니다. 왜 코드가 작동하는지에 대한 이해 없이 기계적으로 다는 주석은 무의미합니다.
답변이 도움이 되었길 바랍니다. 감사합니다. _________________ 강지훈
프로그래밍의 원리 조교
Jeehoon Kang
TA, Principles of Programming |
|