프로그래밍

[클린코드][3장] - 함수

Dibrary 2022. 4. 3. 09:50
반응형

안녕하세요 Dibrary입니다.

클린코드 책 3장은 함수라는 이름으로 시작합니다.

 


1. 함수는 무조건 작게 만들자

여기서 작게의 의미란, 하나의 함수가 하나의 기능만을 가지게 하라는 의미입니다.

조건문, while문 안에는 가능하면 한 줄 정도로 코드가 작성된 것이 좋습니다.

중첩 구조가 생길 정도로 함수가 커져서는 안 됩니다.

만일 의미있는 이름으로 함수의 일부 혹은 다른 함수를 추출할 수 있다면 그 함수는 이미 여러 작업을 하는 셈입니다.

< 단일책임원칙 >
객체지향 5원칙 중에 하나로 '하나의 객체는 반드시 하나의 동작만을 책임진다'는 것이다.

함수가 '한 가지' 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 합니다.

 

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

아래, 위 반복적으로 왔다갔다 하면서 해석해야 하는 코드는 다시 한 번 생각해 봐야 합니다.

 

3. 길고 서술적인 이름이 짧고 어려운 이름보다 좋다

즉, 이름이 길다 하더라도, 더 상세하고 명확한 의미를 표현할 수 있게 이름을 짓는 것이 좋습니다.

단순히 information 이렇게 너무 포괄적이게 짓지 말고, information_around_bulletin_board 이런 식으로 명확하게 표현할 수 있게 이름을 짓는 것이 좋습니다.

 

4. 함수 인수는 최대한 적게

이렇게 전달인자도 많고, 반환 인자도 많으면 오류를 저지를 가능성이 굉장히 큽니다.

 

이런식으로 하나의 객체로 여러 전달인자를 넘기는 것도 하나의 방법입니다.

 

5. 부수효과를 일으키지 마라

분명 함수 이름과 다른 기능을 하면 안 됩니다.

부수효과는 시간적인 결합을 초래합니다.
즉, 시간 선후 관계에서 특정 조건을 만족하는지 아닌지에 따른 판단이 먼저 이뤄져야 코드 진행여부를 따질 수 있게 되므로 부수효과는 없도록 해야 합니다.

 

6. 명령과 조회를 분리하자

 

7. 동일 코드 반복 금지

 

728x90
반응형