Community

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

← Go back
[TIL] CleanCode 3장: 함수
by buri
#clean_code
2년 전
529

오늘 TIL 3줄 요약

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

  • 길이가 짧고 서술적인 이름을 가지도록 한다.

  • 읽는 사람을 생각하며 작성하자.

TIL (Today I Learned) 날짜

2022-04-27

오늘 읽은 범위

3장. 함수

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

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

    • 함수는 작을 수록 좋다.

    • 중첩 구조가 생길 만큼 함수가스 커져서는 안된다.

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

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

    • 함수에서 의미 있는 이름으로 다른 함수를 추출 할 수 있다면 여러 작업을 하는 셈이다.

  • Switch문 (p.46)

    • Switch 문은 분기가 여러개이므로 한 가지 작업만 하게 작성하기 어렵다.

    • 예시는 다형성을 이용하여 해결하는데, Switch문을 추상 팩토리로 이동시키고 파생 클래스의 인스턴트를 생성하는 것으로 중복을 피한다.

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

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

    • 함수 기능을 가장 잘 표현하는 이름을 선택한다.

  • 함수 인수 (p.50)

    • 인수 개수는 0개가 가장 좋다. 3개 이상은 피하자.

    • 인수가 많아지면 가독성이 떨어지고 테스트도 어렵다.

    • 인구 개수가 3개 이상이면 클래스 선언을 고려해보자.

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

    • 함수명으로 예측되지 않는 작업을 하지말자.

    • 예) checkPassWord(password) -> 해당 함수에서 세션 수정하기.

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

    • 오류코드를 이용시 조건문을 보통 사용하게 되어 중첩 코드를 야기하고, 오류 코드 반환시 즉시 처리해야 하는 문제가 생긴다.

    • 예외를 사용하면 오류 처리 코드가 원래 코드에서 분리 가능하다.

    • try~catch 블록은 정상 동작과 오류 처리 동작을 섞는다. 각 블록을 별도 함수로 선언하면 좋다.

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

  • 함수 부분 예시를 보면서 하지말라는 것은 다 하고 있었구나.. 뼈를 맞은 기분이었다. 주로 만지는 것이 레거시다 보니 몇백줄짜리 함수가 너무도 익숙하다. 특히 부수 효과를 일으키지 마라 ! 파트에서 아찔함을 느꼈다. 이런 문제로 유지보수를 하는 경우가 얼마나 많은가.. 책을 읽으면서 단호한 사수에게 코드 리뷰를 받는 것 같았다. 책의 내용을 한 번에 적용하기는 쉽지 않겠지만, 여러 번 읽으면서 체화되도록 노력해야겠다.

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

  • 추상화 파트에서 이해가 안되어서 내일 찾아보려고 함.