개발자 99% 커뮤니티에서 수다 떨어요!
오늘 읽은 범위
3장 함수
책에서 기억하고 싶은 내용을 써보세요.
함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다.
작게 만들어라
함수를 만드는 규칙은 '작게' 이다!
중첩 구조가 생길만큼 함수가 커져서는 안된다.
한 가지만 해라
지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 한 것이다.
함수 당 추상화 수준은 하나로
'한 가지' 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다.
서술적인 이름을 사용하라
코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 부를 수 있다.
함수가 작고 단순할수록 서술적인 이름을 고르기가 쉽다.(이름이 길어도 괜찮다!)
서술적인 이름을 사용하면 개발자 머릿속에도 설계가 뚜렷해지므로 코드를 개선하기 쉬워진다.
모듈 내에서 함수 이름은 같은 문구,명사,동사를 사용한다.
함수인수
이상적인 인수 개수는 0개(무항), 1개(단항), 2개(이항)순이다.
단항 형식으로 쓰는 가장 흔한 경우는 인수에 질문을 던지는 경우, 이벤트 두가지이다.
이 외의 경우라면 단항 함수는 가급적 피한다.
이항 함수는 단항 함수보다 이해하기 어렵다.
삼항 삼수는 신중히 고려해야 한다.
부수 효과를 일으키지 마라
시간적인 결합을 초래할 수 있다.
부수효과는 거짓말이다!
오류코드보다 예외를 사용하라
오류 코드를 반환하면 호출자는 오류 코드를 곧바로 처리해야 한다는 문제에 부딪힌다.
예외를 사용하면 오류 처리 코드가 원래 코드에서 분리되므로 코드가 깔끔해진다.
오류 처리도 한 가지 작업이다.
함수는 '한 가지' 작업만 해야 한다.
오류를 처리하는 함수는 오류만 처리해야 마땅하다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
함수를 4개나 사용했던 경우가 있나? 라는 생각을 했는데 역시나 기대를 져버리지 않고 그렇게 코드를 작성했었습니다.
위와 같이 작성했던 코드들을 리팩터링해야하는데 쉽지 않습니다.
한 가지에 많은 함수를 넣어 손 쉽게 할려고 했던 지난날들을 반성합니다.