Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL 3장.함수
#clean_code
2년 전
742


TIL (Today I Learned)

2022.02.22

오늘 읽은 범위

3장.함수

책에서 기억하고 싶은 내용을 써보세요.

  • 작게 만들어라! p.42

  • 한 가지만 해라! p.44

  • 한 가 지 작업만 하는 함수는 자연스럽게 섹션으로 나누기 어렵다. p.45

  • 위에서 아래로 코드 읽기: 내려가기 규칙 (TO 문단) p.46

  • 서술적인 이름을 사용하라! .p.49

  • 함수 인수 p.50 인수는 적을수록 좋다.

  • 부수 효과를 일으키지 마라! p.54

  • 명령과 조회를 분리하라!

  • 오류 코드보다 예외를 사용하라! Try/Catch

(예: username의 password가 맞는지 확인 하는 함수에 세션을 초기화하는 기능을 추가하면 이는 부수 효과로 함수가 실행할 때 무조건 발생한다.)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • "함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해 야 한다."라는 말이 가장 인상 깊었다

  • Switch 문 p.47

개인적으로 switch 문을 쓰지 말아야하는 것은 잘 모르겠다.

switch 문을 사용했을 때 SRP와 OCP가 위반 되는 것은 알겠다. 하지만 내 생각에는 "switch 문"만이 할 수 있는 일이 있다. 책에서도 그래서 ABSTRACT FACTORY 를 사용한다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 함수 당 추상화 수준은 하나로! p.45

    추상화 수준이 무슨 뜻인지 잘 와 닿지 않는다

    https://sudeky.tistory.com/160

    https://sosimhan-dev.tistory.com/4

    위 링크에서 설명돼있는 것을 토대로 이해하자면

    하나의 기능 하나의 함수로 만드는 작업을 '추상화'라 부른다.

    추상화 수준이 높을수록 함수가 하는 일이 단순한 계산이나 여러 단계의 작업을 그 함수가 직접 하는 것이 아니라 (다른 함수의 결과 값을 활용하여) 주어진 것에서 여러 복잡한 과정이 필요한 일을 단순하게 하는 것이다.

    추상화가 낮은 함수는 다른 함수를 사용하거나 다른 값들을 인용할 필요 없이 그 자체로 단순한 작업을 하는 함수
    여기서 작가는 이 추상화가 하나의 함수에서 여러 단계의 추상화가 보이는 것을 중간 단계의 추상화라고 하는 것 같은데 이는 코드를 읽는 사람이 매우 헷갈릴 것이라고 한다.

  • SRP(Single Responsibility Principle), OCP(Open Closed Principle)

    https://velog.io/@peterpictor/%EC%B1%85%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C-SOLID-%EC%9B%90%EC%B9%99

    SRP: 하나의 클래스에는 한 가지 기능만 책임지기

    OCP: 원래 담당하는 기능에서 다른 기능으로의 변환은 피해야한다. 변경사항이 있을 경우 원래 있던 요소들의 변경 없이 확장으로 변경사항을 반영한다