티스토리 뷰

Book

[Clean Code] TIL - 220126

refigo 2022. 1. 26. 11:07
3장. 함수

 

추상화 수준이 하나인 작은 함수를 만들자.

 

1. 생각

'한 가지'만 하는 함수는 추상화 수준이 하나인 작은 함수다.
그러려면 함수의 단계가 내려가면서 추상화 수준도 한 단계씩 낮아져야 한다.
그런 작고 단순한 함수에는 서술적인 이름을 사용하기 쉬워진다.
설계가 뚜렷해지고 개선하기 좋아진다.

 

2. 기억하고 싶은 문장들

- 작게 만들어라!

블록과 들여쓰기
다시 말해, if문/else 문/while 문 등에 들어가는 블록은 한 줄이어야 한다는 의미다.
블록 안에서 호출하는 함수 이름을 적절히 짓는다면, 코드를 이해하기도 쉬워진다.
이 말은 중첩 구조가 생길만큼 함수가 커져서는 안 된다는 뜻이다.
 

- 한 가지만 해라!

지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 한다.
어쨌거나 우리가 함수를 만드는 이유는 큰 개념을(다시 말해, 함수 이름을) 다음 추상화 수준에서 여러 단계로 나눠 수행하기 위해서가 아니던가.
 

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

함수가 확실히 '한 가지' 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다.
한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 헷갈린다. 특정 표현이 근본 개념인지 아니면 세부사항인지 구분하기 어려운 탓이다.
 
위에서 아래로 코드 읽기: 내려가기 규칙
코드는 위에서 아래로 이야기처럼 읽혀야 좋다. 한 함수 다음에는 추상화 수준이 한 단계 낮은 함수가 온다. 즉, 위에서 아래로 프로그램을 읽으면 함수 추상화 수준이 한 번에 한 단계씩 낮아진다. 나는 이것을 내려가기 규칙이라 부른다.
핵심은 짧으면서도 '한 가지'만 하는 함수다.
 

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

"코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다."
한 가지만 하는 작은 함수에 좋은 이름을 붙인다면 이런 원칙을 달성함에 있어 이미 절반은 성공했다. 함수가 작고 단순할 수록 서술적인 이름을 고르기도 쉬워진다.
 
길고 서술적인 이름이 짧고 어려운 이름보다 좋다. 길고 서술적인 이름이 길고 서술적인 주석보다 좋다.
 
서술적인 이름을 사용하면 개발자 머릿속에서도 설계가 뚜렷해지므로 코드를 개선하지 쉬워진다.
 
이름을 붙일때는 일관성이 있어야 한다. 모듈 내에서 함수 이름은 같은 문구, 명사, 동사를 사용한다.

 

'Book' 카테고리의 다른 글

[Clean Code] TIL - 220128  (0) 2022.01.28
[Clean Code] TIL - 220127  (0) 2022.01.27
[Clean Code] TIL - 220125  (0) 2022.01.25
[Clean Code] TIL - 220124  (0) 2022.01.24
[Clean Code] TIL - 220123  (0) 2022.01.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함