닭발개발

[클린코드] 6일차. 46-56pg | 함수 잘 만들기(1) 본문

책책책 책을 읽읍시다‼ ver.개발/[ 클린코드 ]

[클린코드] 6일차. 46-56pg | 함수 잘 만들기(1)

D269 2023. 9. 11. 09:00
728x90

 

6일차.


클린코드[1주차_토요일]
46-56pg 

 
 

#요약

 

1. 깨끗한 코드

2. 의미 있는 이름

3. 함수

- 함수를 잘 만드는 법을 소개한다.
 
1) 작게 만들어라!
2) 한 가지만 해라!
3) 함수 당 추상화 수준은 하나로!
- 함수가 확실히 '한 가지' 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다. 

- 한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 햇갈린다.
-- 위에서 아래로 코드 읽기 : 내려가기 규칙 => 코드를 위에서 아래로 읽으면 함수 추상화 수준이 한 단계씩 내려가는 것.

 

4) Switch문

- switch문은 작게 만들기 어렵지만 다형성을 이용하여 각 switch문을 저차원 클래스에 숨기고 절대로 반복하지 않는 방법을 쓴다.

 

5) 서술적인 이름을 사용하라!

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

- 이름을 붙일 때는 일관성 있게, 모듈 내에서 함수 이름은 같은 문구, 명사, 동사를 사용한다.

 

6) 함수 인수

- 함수에서 인수 개수 3개 이상은 피하는 게 좋다.

- 인수는 개념을 이해하기 어렵게 만든다.

- 플래그 인수는 추하다.(ㅋㅋㅋㅋㅋ) => 함수가 여러 일을 처리한다고 대놓고 공표하는 셈이니까

- 이항함수는 어쩔 수 없이 쓰면 어쩔 수 없지만, 위험이 따른다. 단항 함수로 바꾸려고 노력해야 한다.

- 인수가 2-3개 이상 필요하다면 일부를 독자적 클래스 변수로 선언할 가능성을 생각해 봐야 한다.

- 인수 개수가 가변적인 함수도 가끔 필요한데, 대표적 예) String.format => 가변 인수를 전부 동등히 취급하면 List형 인수 하나로 취급 가능

- 단항 함수는 함수와 인수가 동사/명사 쌍을 이뤄야 한다.

- 함수 이름에 인수 이름을 넣는다.

 

7) 부수 효과를 일으키지 마라!

- 부수효과는 거짓말이다. 함수에서 한 가지 일만 하겠다고 해놓고 남몰래 다른 일을 하는거니까

- 인수를 출력으로 사용하는 함수에 어색함을 느껴야 한다.

 

8) 명령과 조회를 분리하라

- 함수는 뭔가를 수행 or 답하기 둘 중 하나만 해야 한다.

 

 

 

 

728x90
반응형