-
4. 흐름제어Technique/Readable Code 2015. 12. 10. 10:34반응형
조건, 루프, 흐름을 통제하는 선언문이 코드에 없으면 코드를 매우 읽기 편할 것 이다.
이와 같은 분기문, 점프문은 어려운 대상이며, 코드를 복잡하게 만드는 원인이다.
■ 흐름을 제어하는 조건과 루프 그리고 여타 요소를 최대한 자연스럽게 만들도록 노력하라. 코드를 읽다가 다시 되돌아가서 코드를 읽지 않아돋 되게끔 만들어야 한다.
■ 조건문에서의 인수의 순서
a > b b > a 에서 값을 어디에 두는가
왼쪽 : 값이 더 유동적인 질문을 받는 표현
오른 쪽 : 더 고정적인 값으로 비교 대상으로 사용 되는 표현
ex ) length >= 10
10 <= length
length같이 변화가 빈번한 값을 왼쪽에 두면 읽기 편하다.
■ if / else 블록의 순서
if( a == b ){
} else {
}
와
if( a != b ){
} else {
}
의 경우
- 부정이아닌 긍정을 다루어라 if( !debug ) 보다는 if( debug ) 쪽을 선호 하자
- 간단한 것을 먼저 처리하자. 이렇게 하면 동시에 같은 화면에 if/else 구문을 나타낼 수도 있다.
- 더 흥미롭고, 확실한 것을 먼저 다루어라
다시 한번 이야기하지만 이렇게 표현하면 인간적인 의미에서 조금더 읽기 편하단 것 이지 무조건 이렇게 쓸 필요는 없다. 상황에 따라 대응하자
■ 삼항 연산자를 이용한 조건문
- 줄수를 최소화 하는 일보다 다른 사람이 코드를 읽고 이해하는데 걸리는 시간을 최소화하는 일이 더 중요하다
- 기본적으로 if / else를 사용하고, 매우 간단한 연산일 경우 삼항 연산자를 사용하자.
■ do/while은 피하라
- 일반적으로 논리적인 조건은 그것이 감싸는 코드 위에 놓인다 if, while, for 같이 모두 위에 조건이 제시된다.
하지만 그 역순이기 때문에 굉장히 부자연스럽다.
- 조건은 눈에 뜨이는 곳에 미리 나타내는 것 이 좋다.
■ 함수 중간에서 반환하기
- 중간에서 값일 반환해야할 경우, 굳이 불필요하게 끝까지 다 실행하지 않아도 된다면 중간에 반환시켜버리자
■ goto
- goto는 그렇게 문제되는 녀석이아니다. 하지만 이 goto가 이동할 수 있는 장소가 여러곳으로 늘어나면서 시작되며, 경로가 서로 교차할 때 더욱 심각해진다
특히 goto의 목표 위치가 위로 향하면서 스파게티 코드가 양산된다
■ 중첩을 최소화 하라
- 코드의 중첩이 심할수록 이해하기 어렵다.
- 수정해야 하는 상황이라면 코드를 새로운 관점에서 바라보라, 뒤로 물러서서 코드 전체를 살펴보라
- 함수 중간에서 반환하여 중첩을 중첩을 제거하라
여기서 이야기 하는 중첩이란 if 안에 또다른 if가 나오고 또 if가 나와서 읽고 있는 사람이 지금 자신이 어느 if안에 들어와 있는지 햇갈리가 되는 것을 나타낸다.
이 곳에서 설명하는 모든 방법들은 최선의 방법이지 꼭 이렇게 해야하는 방법은 아니다.
읽으면서 항상 주의하자
이렇게 하는 경우 대부분의 사람이 읽기 쉽다 이지 코드는 무조건 이렇게 짜야한다! 가 아니란 소리이다.
반응형'Technique > Readable Code' 카테고리의 다른 글
6. 변수와 가독성 (0) 2015.12.10 5. 거대판 표현을 잘게 쪼개기 (0) 2015.12.10 3. 주석 (0) 2015.12.09 2. 미학 - 읽기 편한 코드 작성 (0) 2015.12.09 1. 이름에 정보를 담아라 (0) 2015.12.08