Community

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

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

오늘 TIL 3줄 요약

  • 함수를 잘만드는 기교들

  • 작게 만들어라

  • 한 가지만 해라

TIL (Today I Learned) 날짜

2022. 04. 26

오늘 읽은 범위

3장. 함수

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

  • 작게 만들어라 (p.42)

    • 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안된다. (p.44)

  • 한 가지만 해라 (p.44)

    • 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다. (p.44)

  • 함수 당 추상화 수준은 하나로! (p.45)

    • 위에서 아래로 코드 읽기: 내려가기 규칙 (p.46)

    • switch 문 (p.47)

  • 서술적인 이름을 사용하라! (p.49)

  • 함수 인수 (p.50)

    • 많이 쓰는 단항 형식 (p.51)

    • 플래그 인수 (p.52)

    • 이항 함수 (p.52)

    • 삼항 함수 (p.53)

    • 인수 객체 (p.53)

    • 인수 목록 (p.54)

  • 부수 효과를 일으키지 마라! (p.54)

    • 출력 인수 (p.56)

  • 명령과 조회를 분리하라! (p.56)

    • 진짜 해결책은 명령과 조회를 분리해 혼란을 애초에 뿌리뽑는 방법이다. (p.57)

  • 오류 코드보다 예외를 사용하라! (p.57)

    • Try/Catch 블록 뽑아내기 (p.58)

    • 오류도 한 가지 작업이다. (p.59)

  • 반복하지 마라! (p.60)

    • 어쩌면 중복은 소프트웨어에서 모든 악의 근원이다. (p.60)

  • 함수를 어떻게 짜죠? (p.61)

    • 하지만 나는 그 서투른 코드를 빠짐없이 테스트하는 단위 테스트 케이스도 만든다. (p.61)

    • 이 와중에도 코드는 항상 단위 테스트를 통과한다. (p.61)

  • 대가 프로그래머는 시스템을 (구현할) 프로그램이 아니라 (풀어갈) 이야기로 여긴다. (p.62)

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

  • 함수 작성시 가이드를 배웠다.

  • C 언어 프로그래밍 경험이 많다보니 BSD 타입의 네이밍에 익숙해서 함수 이름을 길게 서술형으로 명명하는 것이 어색하다. 특히, 함수이름에 '키워드'를 추가 (p.54) 하는 것은 솔직히 동의하기 힘들다. 내가 볼땐 assertExpectedEqualsActual(expected, actual)라는 함수보다 asssertEquals(expected, actual)이 좀 더 명확하다고 생각한다. 인자명과 함수명이 중복되기 때문이다.

  • 전통적인 C 언어 스타일의 에러 코드를 리턴하여 처리하는 것이 익숙한 편인데, 에러 코드를 리턴하는 것보다 예외를 사용하는 것이 클린하다는 것을 배웠다. 예외를 지원하지 않는 언어에서 예외를 추상화하는 기교가 있으면 좋겠다.

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

  • 도메인 특화 언어 (Domain Specific Language, DSL)? (p.62)

  • 구조적 프로그래밍, AOP, COP? (p.60)

  • 시간적 결합(Temporal coupling)? 순서 종속성(Order dependency)? (p.55)