KARIU의 IT 블로그

클린 코드 - 3장 함수 본문

책 리뷰/클린코드(노개북 2기)

클린 코드 - 3장 함수

카리우 2022. 2. 23. 19:27
반응형

클린코드 TIL(Today I Learned) - Day3 (2022.02.23)

오늘 읽은 범위

3장. 함수

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

  • 함수를 만드는 첫째 규칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다. (p.42)
  • if문, else문, while문 등에 들어가는 블록은 한 줄이어야 한다는 의미다. (p.42)
  • 중첩 구조가 생길만큼 함수가 커져서는 안 된다는 뜻이다. 그러므로 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안 된다. (p.44)
  • 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다. (p.44)
  • 코드는 위에서 아래로 이야기처럼 읽혀야 좋다. 한 함수 다음에는 추상화 수준이 한 단계 낮은 함수가 온다. 즉, 위에서 아래로 프로그램을 읽으면 함수 추상화 수준이 한 번에 한 단계씩 낮아진다. (p.46)
  • 이름이 길어도 괜찮다. 겁먹을 필요없다. 길고 서술적인 이름이 짧고 어려운 이름보다 좋다. 길고 서술적인 이름이 길고 서술적인 주석보다 좋다. (p.49)
  • 함수에서 이상적인 인수 개수는 0개(무항)다. 다음은 1개(단항)고, 다음은 2개(이항)다. 3개(삼항)는 가능한 피하는 편이 좋다. 4개 이상(다항)은 특별한 이유가 필요하다. 특별한 이유가 있어도 사용하면 안 된다. (p.50)
  • 플래그 인수는 추하다. 함수로 부울 값을 넘기는 관례는 정말로 끔찍하다. 왜냐고? 함수가 한꺼번에 여러 가지를 처리한다고 대놓고 공표하는 셈이니까! (p.52)
  • 오류 코드 대신 예외를 사용하면 오류 처리 코드가 원래 코드에서 분리되므로 코드가 깔끔해진다. (p.58)
  • try/catch 블록은 원래 추하다. 코드 구조에 혼란을 일으키며, 정상 동작과 오류 처리 동작을 뒤섞는다. 그러므로 try/catch 블록을 별도 함수로 뽑아내는 편이 좋다. (p.58)
  • 중복은 소프트웨어에서 모든 악의 근원이다. (p.60)
  • 함수는 return문이 하나여야 한다는 말이다. 루프 안에서 break나 continue를 사용해선 안 되며 goto는 절대로, 절대로 안 된다. (p.61)
  • 함수는 그 언어에서 동사며, 클래스는 명사다. (p.62)

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

  • 함수는 무조건 한 가지만을 해야한다는 조언을 보고 앞으로는 짧고 간단하고 쉽게 한 가지 기능만을 하는 함수를 짜도록 연습을 많이 해야겠다는 생각이 들었다.
  • 대학교 과제를 제출할 때, 기능을 구현하는데만 급급하여 중복이 많고 복잡한 코드를 제출한 적이 있다. 물론 지금 그 코드를 다시 본다면 전혀 이해하지 못할 것이다. 중복없이 깔끔한 코드를 짜기 위해선 이해력과 지식이 필요하다. 앞으로 깔끔한 코드를 짜기 위해 공부를 소홀히하지 말아야겠다.

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

  • SRP(Single Responsibility Principle) - 단일 책임 원칙, 모든 클래스는 하나의 책임만 가지며 클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는다.
  • OCP(Open Closed Principle) - 개방 폐쇄 원칙, 소프트웨어 객체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하며 수정에 대해서는 닫혀있어야 한다.
  • 추상 팩토리(Abstract Factory) - 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
반응형
Comments