🩵 TIL
함수 : 의도를 분명하게 하여 읽기 쉽게 그룹화
- 작게 만들어라 (최대한 작게 만드는 것이 좋음)
- 블록과 들여쓰기 (if-else 문 등으로 만들어진 들여쓰기는 2단을 넘어서면 안됨)
- 한가지만 해라 (함수는 한 가지만을, 그 한 가지를 잘 해야 함)
- 의미있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하고 있는 것
- Switch문 - 함수를 작게만들기 어려움. 다형성을 이용하여 저레벨로 숨기는 것도 좋음
- 서술적인 이름을 사용하라
- 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드다
- 이름이 길어도 괜찮음 (길고 서술적인 이름 > 짧고 어려운 이름)
- 일관성이 있어야 함 (다른 함수를 짐작할 수 있도록)
- 함수 인수
- 명령과 조회를 분리하라 -- CQRS
- 오류코드보다 예외를 사용해라 (if-else 보다는 try-catch 를 사용하여 예외로 처리하기. try-catch 자체도 코드 구조에 혼란을 일으키므로 별도의 함수로 처리하기)
- 오류 처리도 한 가지 작업임
- 반복하지 마라
- 중복 코드는 부모클래스로 몰아 중복을 없앤다.
- 코드 중복은 지속적인 노력으로 해결해야 함
- 구조적 프로그래밍 (goto X)
- 좋은 함수를 짜는 방법
- 초안을 만듬
- 단위 테스트 케이스 만들기
- 중복 코드 줄이기, 함수로 만들기, 변수 이름 바꾸기 등의 코드 다듬기
- 테스트 케이스는 계속 통과해아 함
🧡 오늘 읽은 범위
3장 함수
🩶 기록
사내 코드에서 비슷한 작업을 하는 함수이지만 서비스마다 다른 경우도 있었는데, 코드를 읽는 사람의 입장에서는 헷갈릴 수 있다라는 고민도 있었는데, 이번 함수 장을 읽어보니 이 문제를 푸는 방식에 대한 생각을 넓힐 수 있었다.
다형성을 사용하여 비슷한 작업을 하는 함수를 추상화 시키고, 그 내부에 비즈니스 로직을 두어 좀 더 간단 명료한 방식으로 리펙터링할 수 있을 것 같다.
'BOOK Review' 카테고리의 다른 글
[클린코드] TIL - 5장 형식 맞추기 (0) | 2024.06.30 |
---|---|
[클린코드] TIL - 2장 의미있는 이름 (0) | 2024.06.25 |
[클린코드] TIL - 4장 주석 (0) | 2024.06.25 |
[클린 코드] TIL - 1장 깨끗한 코드 (0) | 2024.06.22 |
[Refactoring] 03 코드에서 나는 악취 (0) | 2023.04.09 |