일반적으로 다음 줄 중 어느 코드 형태가 더 나은(?) 코드 인지
글쓴이: jagalchee / 작성시간: 수, 2005/11/16 - 11:08오전
int returnValue = 0; if (...) { returnValue = 0; } else if (...) { returnValue = 1; } ... { ... } else { returnValue = n; } return returnValue;
if (...) { return 0; } else if (...) { return 1; } ... { ... } else { return n; }
저는 그냥 기분에 따라 둘다 마음대로 사용하고 있는데요.
둘 중에서 어느 코드가 더 나은 가독성이 있는지 묻고 싶네요.
Forums:
저도 그냥 마음대로 사용합니다..경우에 따라서 선택하는 경우가 많죠.
저도 그냥 마음대로 사용합니다..
경우에 따라서 선택하는 경우가 많죠..
처음엔 B형으로 늘려나가다가..
리턴하기 전에 뭔가 공통적으로 하는게 많다면 A형으로 바꿔 사용하고..
ㅡ_ㅡ;
[code:1]if (...){ retur
전 이렇게 하는걸 더 좋아합니다.
중첩된 if else 자체가 가독성을 심각하게 떨어뜨린다고 봅니다.
2005년 11월 16일.
가끔, return은 한 곳에서 되어야한다를 고집하시는 오래된 분들이 계
가끔, return은 한 곳에서 되어야한다를 고집하시는 오래된 분들이 계십니다.
저도 이유를 알 고 싶긴한데, 혹시 최적화를 못하는 오래된 컴파일러가
스택을 정리하는 코드가 return이 들어 있는 곳마다 일어나는 것때문에 생기는 낭비스런 모습이 아닐까를 생각해봤는데...
다른 상상은 안되더군요.
---
http://coolengineer.com
이 이야기와는 상관 없지만..저런 경우라면 switch 문이 차라
이 이야기와는 상관 없지만..
저런 경우라면 switch 문이 차라리 좋지 않을까 생각을 해봅니다.
어차피 내부적으로는 같겠지만요..
[quote="pynoos"]가끔, return은 한 곳에서 되어야한다를
확실한 기억은 아니지만,
제 기억에 예전 컴파일러는 return 밑으로 코드가 남아있으면,
경고문을 냈습니다.
2005년 11월 16일.
Re: 일반적으로 다음 줄 중 어느 코드 형태가 더 나은(?) 코드 &
이 코드가 좋다고 생각합니다.
일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.
하나의 함수에 리턴을 하나만 두는 이유는입구와 출구를 하나만 두는 구
하나의 함수에 리턴을 하나만 두는 이유는
입구와 출구를 하나만 두는 구조로 만들기 위함입니다.
이 구조는
그 함수가 복잡해 질수록 더 좋은 가독성을 발휘합니다.
만약 어쩔수 없이 Validataion체크같은것으로 걸러져야 할 부분이 있어서 어쩔수 없이 중간에 함수 종료해야 할 부분이 발생한다면, 그 부분은 다시 구조를 정리해보는것이 좋다고 생각합니다.
간단하게 생각해볼수 있는것으로는 체크모듈부분을 따로 나누는것이겟네요.
하나의 함수에 리턴을 하나만 두는 이유는 입구와 출구를 하나만 두는
하나의 함수에 리턴을 하나만 두는 이유는
입구와 출구를 하나만 두는 구조로 만들기 위함입니다.
이 구조는
그 함수가 복잡해 질수록 더 좋은 가독성을 발휘합니다.
만약 어쩔수 없이 Validataion체크같은것으로 걸러져야 할 부분이 있어서 어쩔수 없이 중간에 함수 종료해야 할 부분이 발생한다면, 그 부분은 다시 구조를 정리해보는것이 좋다고 생각합니다.
간단하게 생각해볼수 있는것으로는 체크모듈부분을 따로 나누는것이겟네요.
함수의 기능과 역할, 처리 방식에 따라 그때 그때 다를 수 있지만, 궂이
함수의 기능과 역할, 처리 방식에 따라 그때 그때 다를 수 있지만, 궂이 하나로 묶을 필요는 없다고 생각합니다. 함수를 끝내는 곳이 하나여야만 가독성을 높인다고 보는 것도 힘들 것 같습니다.
제 경우에는, 아래 foo() 보다는 bar()와 같은 식의 코드를 선호합니다:
그렇다고 꼭 종료할 필요가 있을 때, 바로 종료하는 것도 좋지 않을 것 같습니다. 특히 아래와 같은 함수가 쓰일 필요가 있을 경우에는...
결론을 말하자면, 함수의 동작 방식과 역할에 따라 그때그때 다를 수 있다에 한 표~ :wink:
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
[quote="cinsk"]함수의 기능과 역할, 처리 방식에 따라 그때
cinsk님 의견에 한표~~
하지만 정도의 관점으로 봤을때 저는 대체적으로
초기 에러 체크 부분 빼고는 전체적인 로직상 single return을
선호하는 편입니다.
이 부분은 가독성의 관점보다는 유지보수성의 관점, bug-less의
관점으로 보는게 좀더 낫지 않을까 싶은데여.
(사실 같은 맥락이긴 한데..가독성이 좋아야 유지보수성도 좋으니..) 제 경험상..^^;;
권위를 의심할 것,어긋남을 존경할 것,자리잡기를 거부할 것,항상 자신을 재창조할 것 - MIT 미디어랩 -
댓글 달기