[클린 코드] 함수

이승훈·2023년 1월 13일
0

CleanCode

목록 보기
2/4
post-thumbnail

⚙️ 작게 만들어라

함수를 만드는 제일 규칙은 작게! 다.
각 함수는 하나의 이야기를 표현해야하고, 각 함수는 다음 무대를 준비해야 한다.

  • 블록과 들여쓰기
    if문/else문/while문 등에 들어가는 블록은 한줄 이어야 한다. 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안 된다.

⚙️ 한 가지만 해라!

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

지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 한다.

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

⚙️ 위에서 아래로 코드 읽기: 내려가기 규칙

코드는 위에서 아래로 이야기처럼 읽혀야 좋다.
한 함수 다음에는 추상화 수준이 한 단계 낮은 함수가 와야한다.
위에서 아래로 프로그램을 읽으면 함수 추상화 수준이 한 번에 한 단계씩 낮아진다.

⚙️ 서술적인 이름을 사용하라

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

⚙️ 함수 인수

함수에서 이상적인 인수 개수는 0개(무항)다.
3개(삼항)는 피하는 편이 좋다.
4개(다항)은 특별한 이유가 필요하다.
아니 그냥 특별한 이유가 있어도 사용하면 안된다.

많이 쓰는 단항 형식

  • 인수에 질문을 던지는 경우
    ex) fileExists('Myfile')
  • 인수를 뭔가로 변환해 결과를 반환하는 경우
    ex) stringToNum('1234')
  • 이벤트 함수
    이벤트함수는 입력만 있고 출력이 없다.

플래그 인수

플래그 인수는 추하고 끔찍하다.
왜냐하면 함수가 한꺼번에 여러가지를 처리하는것을 대놓고 공표하는 셈이기 때문이다.
플래그가 참이면 이걸하고, 거짓이면 저걸 한다는 뜻이기 때문이다.
.
.
.
작성중...

profile
Beyond the wall

0개의 댓글