728x90
3장. 함수
 - 함수를 만드는 첫 번째 규칙은 '작게'다. 두번째 규칙은 '더 작게'다.

 - 함수는 100줄을 넘겨선 안된다. 아니 20줄도 길다.

 - if, else, while문 등에서 들어가는 블록은 한줄이어야 한다. 즉, 거기서 함수를 호출한다. 대신 그만큼 함수이름을 잘 지어줘라.

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

 - 함수가 한가지만 하는지를 판단하는 방법이 있다. 단순히 다른 표현이 아니라 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 한수는 여러 작업을 하는 것이다.

 - 코드는 위에서 아래로 이야기처럼 읽혀야 좋다. 일련의 문단을 읽듯이 읽혀야 한다.

 - 함수의 이름이 길어도 좋다. 길고 서술적인 이름이 짧고 어려운 이름보다 좋다. 길고 서술적인 이름이 길고 서술적인 주석보다 좋다.

 - 함수에서 이상적인 인수개수는 0개다. 인수가 생기면 사용자가 인수에 대해 파악해야 한다.
 
 - 인수가 1개인 경우는 대게 인수에 대해 판단(질문)을 던지는 경우다. 혹은 인수를 변환해 값을 반환하는 경우다.

 - 인수가 2개인 경우는 좌표계의 경우가 적절하다.

 - 함수명과 인수가 쌍을 이루면 이해하기 편리하다. write(name);

 - 함수에서 한가지 동작 외에 부수효과가 있다면  제약을 불러온다. 예상치 못한 에러를 일으키기 쉽다.
 
 - 함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야한다.

 - 반복하지 마라!

 - 함수를 처음 짤때는 길고 복잡하고, 중복된다. 인수목록도 길다. 하지만, 함수가 완성되고나면 코드를 다듬고, 함수를 (나누어)만들고, 이름을 바꾸고, 중복을 제거하고, 순서를 바꾸어라.

[출처] 클린코드 - 로버트C.마틴 지음
728x90
반응형