Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL. 3장 함수
#clean_code
2년 전
416


TIL (Today I Learned)

2022.02.22

오늘 읽은 범위

3장 함수

책에서 기억하고 싶은 내용을 써보세요.

  • 작게 만들어라

    • if/else/while문에 들어가는 블록은 한줄이어야 한다

    • 함수의 들여쓰기 수준은 1단이나 2단을 넘어서면 안된다.

  • 한 가지만 해라!

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

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

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

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

    • 한 함수 내에 추상화 수준을 썩으면 코드를 읽는 사람이 헷갈린다.

    • 내려가기 규칙

      • 한 함수 다음에는 추상화 수준이 한 단계 낮은 함수가 온다.

  • Switch문

    • 먼말인지 모르겠음

  • 서술적인 이름을 사용하라

    • 함수가 작고 단순할수록 서술적인 이름을 고르기도 쉬워진다.

    • 이름이 길어도 괜찮다.

    • 이름을 정하느라 시간을 들여도 괜찮다.

    • 이름을 붙일 떄는 일관성이 있어야 한다.

  • 함수 인수

    • 인수는 작을수록 좋다.

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

      • 테스트 관점에서 보면 인수는 더 어렵다.

      • 출력 인수는 입력 인수보다 이해하기 어렵다.

    • 함수에 인수 1개를 넘기는 흔한 경우

      • 인수에 질문을 던지는 경우

      • 인수를 뭔가로 반환해 결과를 반환하는 경우

    • 플래그 인수는 추하다.

      • 함수가 한꺼번에 여러 가지를 처리한다고 대놓고 공표하는 셈이다.

    • 인수 객체

      • 인수가 2~3개 필요하다면 독자적인 클래스 변수로 선언할 가능성을 짚어본다.

    • 동사와 키워드

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

      • 함수 이름에 키워드를 추가하는 형식.(함수 이름에 인수 이름을 넣는다.)그러면 인수 순서를 기억할 필요가 없어진다.

  • 부수 효과를 일으키지 마라

    • 함수는 한 가지 기능만을 수행해야 한다.

  • 명령과 조회를 분리하라

  • 오류 코드보다 예외를 사용하라

  • 반복하지 마라

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

함수는 코딩하는데 아주 중요한 요소이다. 그런 함수를 직관적으로 무슨일을 하는지 알아볼 수 있도록 작성 연습을 해야겠다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

AOP,OCP