개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.22
오늘 읽은 범위
3장 함수
책에서 기억하고 싶은 내용을 써보세요.
작게 만들어라
if/else/while문에 들어가는 블록은 한줄이어야 한다
함수의 들여쓰기 수준은 1단이나 2단을 넘어서면 안된다.
한 가지만 해라!
함수는 한 가지만 해야한다. 한가지만 잘해야 한다. 한가지만을 해야 한다.
지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한가지 작업만 한다.
단순히 다른 표현이 아니라 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다.
함수 당 추상화 수준은 하나로!
한 함수 내에 추상화 수준을 썩으면 코드를 읽는 사람이 헷갈린다.
내려가기 규칙
한 함수 다음에는 추상화 수준이 한 단계 낮은 함수가 온다.
Switch문
먼말인지 모르겠음
서술적인 이름을 사용하라
함수가 작고 단순할수록 서술적인 이름을 고르기도 쉬워진다.
이름이 길어도 괜찮다.
이름을 정하느라 시간을 들여도 괜찮다.
이름을 붙일 떄는 일관성이 있어야 한다.
함수 인수
인수는 작을수록 좋다.
인수는 개념을 이해하기 어렵게 만든다.
테스트 관점에서 보면 인수는 더 어렵다.
출력 인수는 입력 인수보다 이해하기 어렵다.
함수에 인수 1개를 넘기는 흔한 경우
인수에 질문을 던지는 경우
인수를 뭔가로 반환해 결과를 반환하는 경우
플래그 인수는 추하다.
함수가 한꺼번에 여러 가지를 처리한다고 대놓고 공표하는 셈이다.
인수 객체
인수가 2~3개 필요하다면 독자적인 클래스 변수로 선언할 가능성을 짚어본다.
동사와 키워드
단항 함수는 함수와 인수가 동사/명사 쌍을 이뤄야 한다.
함수 이름에 키워드를 추가하는 형식.(함수 이름에 인수 이름을 넣는다.)그러면 인수 순서를 기억할 필요가 없어진다.
부수 효과를 일으키지 마라
함수는 한 가지 기능만을 수행해야 한다.
명령과 조회를 분리하라
오류 코드보다 예외를 사용하라
반복하지 마라
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
함수는 코딩하는데 아주 중요한 요소이다. 그런 함수를 직관적으로 무슨일을 하는지 알아볼 수 있도록 작성 연습을 해야겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
AOP,OCP