노마드개발자북클럽/CleanCode

CleanCode(클린코드) Chapter3 - 함수

개발자_옹이양 2022. 1. 28. 02:47

DAY 5~6

🔖 오늘 읽은 범위 : 3장. 함수


😃 책에서 기억하고 싶은 내용.

  • 함수를 만드는 첫째 규칙은 작게, 둘째 규칙은 더 작게
  • 각 함수가 너무도 명백했다.
  • 함수는 한가지를 잘 해야 한다. 그 한가지를 잘 해야 한다. 그 한가지만을 잘 해야 한다
  • 함수가 확실한 ‘한 가지’ 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다. 수준 상 eg. getHtml() 수준 중 eg. String pagePathName = PathParser.render(pagepath); 수준 하 .append(”\n”)
  • 한 함수 다음에는 추상화 수준이 한 단계 낮은 함수가 온다.
  • 서술적인 이름을 사용하라! 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다.
  • 플래그 인수는 추하다.
  • 함수는 뭔가를 수행하거나 뭔가에 답하거나 둘중 하나만 해야 한다. 둘 다 하면 안 된다.
  • 오류 코드보다 예외를 사용하라 (if문 체크보단 try catch를)
  • 에츠허르 데이크스트라의 구조적 프로그래밍 원칙을 따른다. 데이크스트라는 모든 함수와 함수 내 모든 블록에 입구와 출구가 하나만 존재해야 한다고 말했다. 즉 함수는 return 문이 하나여야 한다. 루프 안에서 break나 continute를 사용해선 안된다.
  • 처음엔 길고 복잡하게 → 이름은 즉흥적이고 코드는 중복 → 단위 테스트 케이스도 만듦 → 코드를 다듬고 → 함수를 만들고 → 이름을 바꾸고 → 중복을 제거한다.
  • 함수는 그 언어에서 동사며, 클래스는 명사다.

🤔 오늘 읽은 소감은? 떠오르는 생각

  • 클래스는 무조건 명사로 만든다 머리가 깨져도 명사
  • 다행히 플래그 인수의 함수를 만들지 않았다. 위험한 냄새를 맡았던 나를 스스로 칭찬한다.
  • 추상화 수준이란 것을 생각하면서 함수를 짜야겠다는 생각이든다. 아마도 추상화 중 정도로 많이 쓸 것 같다.

📝소감 3줄 요약

  • 머리가 깨져도 클래스 이름은 명사, 함수는 동사
  • 오류 코드보다는 예외를 사용
  • 플래그 인수는 추함만이 있을뿐