프로그래밍 구조 |
상위수준의 프로그램 흐름이 혼란스러워지는 방식 |
스레딩 |
어느 코드가 언제 실행되는지 불분명하다 |
시그널/인터럽트 핸들러 |
어떤 코드가 어떤 시점에 실행될지 모른다 |
예외 |
예외처리가 여러 함수 호출을 거치면서 실행될 수 있다 |
함수 포인터 & 익명 함수 | 실행할 함수가 런타임에 결정되기 때문에 컴파일 과정에서는 어떤 코드가 실행될지 알기 어렵다 |
가상 메소드 |
object.virtualMethod()는 알려지지 않은 하위 클래스의 코드를 호출할지도 모른다 |
위 예시 중 어떤 것은 매우 유용하다. 코드를 더 읽기 편하고 덜 중복되게 한다. 하지만 프로그래머는 나중에 코드를 읽는 사람이 얼마나 어렵게 느낄지 생각하지 않은 채 이러한 구조들을 과도하게 사용하기도 한다. 그리고 이러한 구조는 버그 추적을 매우 어렵게 한다.
결국 핵심은 코드를 작성할 때 이러한 구조가 차지하는 비율이 너무 높지 않아야 한다는 데 있다. 만약 과용하면 코드의 흐름을 파악하는 일이 매우 어려워진다.
'Archive' 카테고리의 다른 글
쇼트 서킷 논리 (Short-Circuit Logic) 오용 말기 (0) | 2012.06.15 |
---|---|
설명 변수와 요약 변수 (0) | 2012.06.15 |
코드의 미학 (0) | 2012.05.11 |
Boolean 변수의 이름에서는 의미를 부정하는 용어를 피하는 것이 좋다 (0) | 2012.05.11 |
first/last와 begin/end (0) | 2012.05.11 |