Books/읽기 좋은 코드가 좋은 코드다

7. 읽기 쉽게 흐름제어 만들기

개발하는 사막여우 2021. 12. 3. 13:40
반응형

이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다.

<<흐름을 제어하는 조건과 루프, 그리고 여타 요소를 최대한 "자연스럽게" 할 것!!>>

 

1. 조건문에서 인수의 순서

-> 왼쪽이 주체, 오른쪽이 고정 값.

// good
if(length > 0) {
	...
}

// bad
if(0 < length){
	...
}

 

2. if/else 블록의 순서

-> if(긍정) else : 일반적으로 좋음!

-> 간단한 것을 먼저하는 것 좋음

-> 더 흥미롭고, 확실한 것 먼저하는 것 좋음

 

3. 삼항 연산자를 사용하는 것

-> 기본적으로 if/else를 사용하고, 삼항 연산자는 매우 간단할 때만 사용한다.

-> 짧은 코드 < 다른 사람이 이해하기 쉬운 코드

 

4. do/while 루프를 피하라

 

5. 함수 중간에서 반환하기

-> 함수를 중간에서 반환하는 것은 적절한 "보호장치"가 될 수 있다.

-> "보호장치"라 함은, 함수가 고장나지 않도록 하는 예외처리라고도 할 수 있다.

 

6. 악명 높은 goto

-> goto는 되도록 사용하지 않는다.

 

7. 중첩을 최소화하기

-> 선형적인 코드를 추구하라.

-> 함수 중간 반환을 사용하여 중첩을 최소화할 수 있다.

-> 루프 내부에서 중간 반환시 continue 사용

 

8. 실행흐름을 따라올 수 있는가?

-> 자신의 프로그램에 존재하는 '흐름'을 상위수준에서 조명해보라.

-> 아래 표의 구조가 차지하는 비율이 너무 높지 않게 하라!

프로그래밍 구조 상위수준의 프로그램 흐름이 혼란스러워지는 방식
쓰레딩 어느 코드가 언제 실행되는지 불분명하다.
시그널/인터럽트 핸들러 어떤 코드가 어떤 시점에 실행될지 모른다.
예외 예외처리가 여러 함수 호출을 거치면서 실행될 수 있다.
함수 포인터 & 익명 함수 실행할 함수가 런타임에 결정되기 때문에 컴파일 과정에서는 어떤 코드가 실행될지 알기 어렵다.
가상 메소드 object.virtualMethod()는 알려지지 않은 하위클래스의 코드를 호출할지도 모른다.
반응형