본문 바로가기
개발관련 서적 정리/CleanCode

03. 함수

by Backchus 2020. 1. 15.

1. 최대한 작게 만들어라

if 문 / else 문/ while 문 에 중첩구조가 생길만큼 함수가 커져서는 안된다. 가급적이면 2단을 넘어서면 안된다.

 

2. 한 가지만 해라

함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다.

단순히 다른 표현이 아니라 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다.

 

3. 함수 당 추상화 수준은 하나로!

코드는 위에서 아래로 이야기처럼 읽혀야 좋다.

 

4. 서술적인 이름을 사용하라!

코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 된다.

이름이 길어도 괜찮다. 길고 서술적인 이름이 길고 서술적인 주석보다 좋다.

이름을 붙일 때는 일관성이 있어야 한다. 

모듈 내에서 함수 이름은 같은 문구, 명사, 동사를 사용한다.

ex. includeSetupAndTearedownPages, includeSetupPages, includeSuitePage, includeSetupPage

 

5. 함수 인수

함수에서 이상적인 인수 개수는 0개(무항) 이다. 3개이상은 가능하면 피하라.

최선은 입력 인수가 없는 경우이며, 차선은 입력 인수가 1개뿐인 경우다.

많이 쓰는 단항 형식

void includeSetupPageInto(StringBuffer pageText)보다는

StringBuffer transform(StringBuffer in)이 낫다. 입력 인수를 그대로 돌려주는 함수라 할지라도 변환 함수 형식을 따르는 편이 좋다. 적어도 변환 형태는 유지하기 때문이다.

플래그 인수

플래그 인수는 추하다. 함수로 부울 값을 넘기는 관례는 끔찍하다. 그 이유는 함수가 한꺼번에 여러 가지를 처리한다고 대놓고 공표하는 셈이다.

render(boolean isSuite)보다는 renderForSuite()와 renderForSingleTest()라는 함수로 나누는 것이 낫다.

 

 

'개발관련 서적 정리 > CleanCode' 카테고리의 다른 글

02. 의미 있는 이름  (0) 2019.08.26
01. 깨끗한 코드  (0) 2019.08.26