개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.22
오늘 읽은 범위
3장. 함수(p.40~54)
책에서 기억하고 싶은 내용을 써보세요.
중첩 구조가 생일만큼 함수가 커져서는 안 된다는 뜻이다. 그러므로 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안된다.(p.44)
함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다.(p.44)
지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한 가지 작업만 한다.(p.45)
의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다.(p.45)
내려가기 규칙: 위에서 아래로 프로그램을 읽으면 함수 추상화 수준이 한번에 한 단계씩 낮아진다. 일련의 TO 문단을 읽듯이 프로그램이 읽혀야 한다는 의미다.(p.46)
최선은 입력 인수가 없는 경우이며, 차선은 입력 인수가 1개뿐인 경우다. SetupTeardownIncluder.reder(pageData)는 이해하기 아주 쉽다. pageData 객체 내용을 렌더링 하겠다는 뜻이다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
내가 작성한 함수명을 보고 '이게 어떤 함수였더라?'라고 생각해 다시 로직을 읽어내고 함수를 떠올렸던 적이 많다. 로직을 읽다보면 여러가지 로직을 처리하고 있어 함수를 읽어내기 꽤 시간이 걸린 적도 있었다. 이번 장을 통해 '함수는 한 가지를 해야 한다'라는 문장에서 그동안 내가 작성한 함수들이 내가 짠 로직인데도 불구하고 읽어내기까지 시간이 걸렸는지 알 수 있었다. 함수의 이름과 실행하는 일들이 이런 결과를 초래한 것이다.
이제 코딩에 입문하는 단계로 클래스를 최소로 만들어 사용하는게 나은 방향인지(대신 함수 로직이 길어지겠지..?) 클래스를 많이 사용하여 읽어내기 쉬운 로직을 짜는게 맞는 것인지 잘 모르겠다.어디서부터 기본개념을 잡아햐 할까? 슬랙에 한번 여쭤봐야겠다!
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
이번 내용도 어려워서 계속 반복해서 읽었다 내일까지 3장을 읽을 수 있으니 처음부터 다시 읽고궁금한 내용을 적어야겠다.