개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.22
오늘 읽은 범위
3장. 함수
책에서 기억하고 싶은 내용을 써보세요.
함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안 된다. 당연한 말이지만, 그래야 함수는 읽고 이해하기 쉬워진다. (P. 44)
함수당 추상화 수준은 하나로! : 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한가지 작업만 한다. (P. 45)
함수 이름을 정할 때는 여러 단어가 쉽게 읽히는 명몀법을 사용한다. 그런 다음 여러단어를 사용해 함수 기능을 잘 표현하는 이름을 선택한다. (P. 49)
함수에서 이상적인 인수 개수는 0개(무항)다. (P. 50)
함수는 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야 한다. 둘 다 하면 안된다. (P. 56)
오류 코드보다 예외를 사용하라! (P. 57)
try/catch 블록을 별도 함수로 뽑아내는 편이 좋다. (P. 58)
루프 안에서 break나 continue를 사용해선 안되며 goto는 잴대로 절대로 안된다. (P. 61)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
함수에서 작업을 한가지만 하라는 원칙을 설명하는 내용 중에 '근본 개념과 세부사항을 뒤섞기 시작하면, 깨어진 창문처럼 사람들이 함수에 세부사항을 점점 더 추가한다.' 가 있는데 협업개발을 하다보면 원칙이 무너지는 순간 코드는 개발자 마다 제 각각의 형식으로 뒤덮이고 순식간에 더러워지게 디는 경험을 했기에 뼈저리게 느껴지는 항목입니다.
함수를 간결하고 다른 사람이 쉽게 파악할 수 있는 형태로 작성할 수 있도록 가이드를 줬다고 생각하고 코드리뷰 과정에서 이 책의 내용을 최대한 반영해야 겠다는 생각입니다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
SRP : 단일책임원칙, "클래스는 단 한 개의 책임을 가져야 한다."
OCP : 개방-폐쇄 원칙, 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해서는 열려 있어야 하지만 변경에 대해서는 닫혀 있어야 한다. 이것은 interface 를 통해 구현하여 해결한다.