7 분 소요

TIL (Today I Learned)

2022.02.22(화) ~ 2022.02.23(수)


오늘 읽은 범위

  • 3장. 함수 (p.65)


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

  1. 함수는 한 가지를 해야 한다. 그 한 가지를 해야 한다. 그 한 가지을 해야 한다.
    • 추상화 수준하나인 단계만 수행한다면 함수는 한 가지 작업만 한다.
    • 구현한 기능에서 여러 섹션으로 나누기 어렵다.


  1. 내려가기 규칙
    • 함수 추상화 수준이 한 번에 한 단계씩 낮아진다.


  1. switch문은 추상 팩토리에 숨김


  1. 함수의 이름은 일관성 있고 서술적인 이름을 사용


  1. 함수의 인수는 적을수록 좋음
    • 많을수록 경우의 수가 많아지기 때문
    • bool 형식의 플래그 인수지양 (여러 가지를 처리한다는 뜻)


  1. 명령(상태 변경)과 조회(정보 반환)를 분리하여 작성


  1. try-catch 블록은 별도 함수로 뽑아냄
    • 정상 동작오류 처리 동작 분리


  1. 함수 작성 방법
    • 먼저 생각을 기록 한 후 좋게 다듬는다.


따라서, 작성하는 함수가 분명하고 정확한 언어로 깔끔하게 같이 맞아떨어져야 이야기를 풀어가기 쉬워진다.


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

프로그램을 처음 개발할 때는 처음부터 완벽하게 하자 라는 강박이 강했다. 하지만 지금까지 참여한 개발에서 처음부터 완벽이라는 것은 불가능에 가까운 것같다. 그래서 지금은 일단 기능이 작동하게 구현 후, 같은 맥락의 기능은 함수로 묶고 내용을 알기 쉽게 다듬는 작업을 한다. 그런데 그런 내용이 책에 나오니 내가 하고 있는 방식에 대해서 안심이 되어서 뿌듯했다.


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

  • FitNesse, JUnit 등 테스트 도구
  • 에츠허르 데이크스트라(Edsger Dijkstra)의 구조적 프로그래밍 원칙

    모든 함수와 함수 내 보든 블록에 입구와 출구가 하나만 존재해야 한다. (break, continue, goto 사용 지양)


댓글남기기