일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- docker
- 주니어개발자
- IntelliJ
- 독서일지
- 성수
- 독서
- Linux
- 직장인
- 클린코드
- 깨끗한코드
- 책읽기
- 개발자
- 디자인패턴
- 성수직장인
- 책너두
- 성수볼거리
- 성수핫플
- 직장인점심
- 헤드퍼스트디자인패턴
- 상속
- 코딩
- JAVA개발자
- 성수맛집
- 객체지향프로그래밍
- DesignPattern
- 객체지향
- JavaScript
- Java
- 헤드퍼스트
- 오브젝트
- Today
- Total
닭발개발
[클린코드] 6일차. 46-56pg | 함수 잘 만들기(1) 본문
6일차.
클린코드[1주차_토요일]
46-56pg
#요약
1. 깨끗한 코드
2. 의미 있는 이름
3. 함수
- 함수를 잘 만드는 법을 소개한다.
1) 작게 만들어라!
2) 한 가지만 해라!
3) 함수 당 추상화 수준은 하나로!
- 함수가 확실히 '한 가지' 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다.
- 한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 햇갈린다.
-- 위에서 아래로 코드 읽기 : 내려가기 규칙 => 코드를 위에서 아래로 읽으면 함수 추상화 수준이 한 단계씩 내려가는 것.
4) Switch문
- switch문은 작게 만들기 어렵지만 다형성을 이용하여 각 switch문을 저차원 클래스에 숨기고 절대로 반복하지 않는 방법을 쓴다.
5) 서술적인 이름을 사용하라!
- 길고 서술적인 이름이 짧고 어려운 이름보다 좋다.
- 이름을 붙일 때는 일관성 있게, 모듈 내에서 함수 이름은 같은 문구, 명사, 동사를 사용한다.
6) 함수 인수
- 함수에서 인수 개수 3개 이상은 피하는 게 좋다.
- 인수는 개념을 이해하기 어렵게 만든다.
- 플래그 인수는 추하다.(ㅋㅋㅋㅋㅋ) => 함수가 여러 일을 처리한다고 대놓고 공표하는 셈이니까
- 이항함수는 어쩔 수 없이 쓰면 어쩔 수 없지만, 위험이 따른다. 단항 함수로 바꾸려고 노력해야 한다.
- 인수가 2-3개 이상 필요하다면 일부를 독자적 클래스 변수로 선언할 가능성을 생각해 봐야 한다.
- 인수 개수가 가변적인 함수도 가끔 필요한데, 대표적 예) String.format => 가변 인수를 전부 동등히 취급하면 List형 인수 하나로 취급 가능
- 단항 함수는 함수와 인수가 동사/명사 쌍을 이뤄야 한다.
- 함수 이름에 인수 이름을 넣는다.
7) 부수 효과를 일으키지 마라!
- 부수효과는 거짓말이다. 함수에서 한 가지 일만 하겠다고 해놓고 남몰래 다른 일을 하는거니까
- 인수를 출력으로 사용하는 함수에 어색함을 느껴야 한다.
8) 명령과 조회를 분리하라
- 함수는 뭔가를 수행 or 답하기 둘 중 하나만 해야 한다.
'책책책 책을 읽읍시다‼ ver.개발 > [ 클린코드 ]' 카테고리의 다른 글
[클린코드] 8일차. 67-74pg | 주석, 좋은 주석 (0) | 2023.09.12 |
---|---|
[클린코드] 7일차. 57-66pg | 함수 잘 만들기(2) (0) | 2023.09.11 |
[클린코드] 5일차. 35-45pg | 의미있는 이름, 함수 만들기 (0) | 2023.09.08 |
[클린코드] 4일차. 24-34pg | 의미있는 이름 (0) | 2023.09.07 |
[클린코드] 3일차. 13-23pg | 깨끗한 코드란, 의미 있는 이름짓기 (0) | 2023.09.06 |