개발자 99% 커뮤니티에서 수다 떨어요!
오늘 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 블록은 정상 동작과 오류 처리 동작을 섞는다. 각 블록을 별도 함수로 선언하면 좋다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
함수 부분 예시를 보면서 하지말라는 것은 다 하고 있었구나.. 뼈를 맞은 기분이었다. 주로 만지는 것이 레거시다 보니 몇백줄짜리 함수가 너무도 익숙하다. 특히 부수 효과를 일으키지 마라 ! 파트에서 아찔함을 느꼈다. 이런 문제로 유지보수를 하는 경우가 얼마나 많은가.. 책을 읽으면서 단호한 사수에게 코드 리뷰를 받는 것 같았다. 책의 내용을 한 번에 적용하기는 쉽지 않겠지만, 여러 번 읽으면서 체화되도록 노력해야겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
추상화 파트에서 이해가 안되어서 내일 찾아보려고 함.