Clean Code - (2) : 함수

­이승환·2021년 10월 22일
0

Clean Code

목록 보기
2/7

함수


클린코드를 위한 함수작성 가이드를 스터디 후 기록으로 남깁니다.

0. 나쁜 함수의 예

1. 작게 만들어라

  • 함수를 만드는 가장 중요한 규칙은 작게

    • 함수는 20줄도 길다!
    • 함수를 작게 만들어야 읽고 이해하기 쉬워진다
  • if / else, while 에서는 블록은 한 줄로!

    • 안에서 함수를 호출하는 형태로 하면 된다
    • 중첩 구조가 생길 만큼 함수가 커져서는 안된다
    • indent는 2개 이상은 절 ~ 대 금물이라고 생각하면 습관이 좋게 생긴다

2. 한 가지만 하자

  • 함수는 한가지만 하자, 그 한가지만 잘해도 충분하다
  • 함수 당 추상화 수준은 하나로
    • 함수 내 모든 문장의 추상화 수준이 동일해야 함수가 한 가지 작업만 한다 (줄이 길어지더라도 하려고 하는 목적이 동일해야 추상화 수준이 한개)
  • 위에서 아래로 코드 읽기
    • 코드는 이야기처럼 읽혀야 제대로된 코드라고 생각하면 됨

3. switch문

  • 다형성을 이용해라
    • switch문은 작고 한가지 작업만 하도록만들기 어렵다
    • 다형성을 이용해서 추상 팩토리에 숨겨 다형성 객체를 사용하는 코드에서 사용하자

4. 함수인수

  • 이상적인 인수의 개수는 0개
  • 함수에 인수를 1개 전달하는 경우
    • 인수에 질문을 던지는 경우
    • 인수에 뭔가를 변환해서 결과를 만드는 경우
    • 이벤트 함수의 경우
  • 플래그 인수
    • bool 값을 넘긴다는 것은 함수가 여러가지 일을 처리한다고 공표하는 것
    • 플래그 인수를 사용하지 말고 대신 함수를 나누자
  • 이항 함수
    • 다음과 같은 경우는 이항함수가 절절하지만, 가능하면 단항으로 하자
Point p = new Point(x, y);
  • 인수의 객체 활용
    • 인수가 2 ~ 3 개라면 객체를 생성해서 인수를 줄이자
  • 동사와 키워드
    • 단항 함수는 함수와 인수가 동사/명사 쌍을 이루도록 하자
    • 함수 이름에 인수 이름을 추가하면 순서를 기억할 필요가 없음 (인수 이름을 제대로 추가하자)

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

  • 한 함수에서는 딱 한가지만 수행하도록하자 (위에서 언급했지만 한번더)

  • 출력 함수는 클래스나 객체를 만들어서 사용하는 것이 훨씬 바람직하다

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

  • 한 함수가 두가지를 하면 혼란을 초래한다
    • 명령과 조회는 최대한 분리해서 함수를 만드는 것이 훨씬 효과적이다

7. 오류코드보다 예외를 사용하자

  • 메인에서 try{ } catch(Exception e) { } 사용
  • 그 이후에는 throws || throw 를 통해서 확인하는 형태로 가는 것이 낫다

8. 오류코드에서 enum 클래스 사용은 경계하자

9. 반복하지마라

  • 중복은 모든 악의 근원이다
  • depth 를 1개로 제한하면 반복문도 최소화된다
  • 자주 사용되는 코드는 메소드로 추출한다
profile
Mechanical & Computer Science

0개의 댓글