작게 만들어라
20줄도 길다. 2~5줄 구성하라
함수에서 들여 쓰기 수준은 1단이나 2단을 넘어서지 않아야 한다(다중 중첩 금지)
한 가지만 해라
함수는 한 가지를 해야 한다. 그 한 가지를 잘해야 한다.
함수 내에 의미 있는 이름으로 추출가능한 부분이 있다면 함수가 분리 가능하다는 뜻이다.
함수당 추상화 수준은 하나로
한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 헷갈린다.
코드는 위에서 아래로 읽혀야 한다. -> 내려가기 규칙
Switch
스위치 문은 작게 만들기 어렵다. 하지만 switch문을 완전히 피할 방법은 없다.
하지만 switch 문을 저 차원 클래스에 숨기고 반복하지 않는 방법은 있다. -> 다형성을 이용한다.
switch 문을 한 가지 단일 작업을 하기 어렵다는 점도 있다.
다형성 객체를 생성하기 위한 코드에서 사용, 절대로 다른 코드에 노출하지 않는다.
서술적인 이름을 사용하라
코드를 읽으면서 짐작했던 루틴이 그래도 수행한다면 깨끗한 코드라 불러도 되겠다.
함수가 작고 단순할수록 서술적인 이름을 고르기도 쉬워진다.
이름이 길어도 괜찮다. 길고 서술적인 이름이 짧고 어려운 이름보다 좋다
서술적인 이름을 사용하면 개발자 머릿속에서도 설계가 뚜렷해지므로 코드를 개선하기 쉬워진다.
이름을 붙일 때는 일관성이 있어야 한다. 문체가 비슷하면 이야기를 순차적으로 풀어가기 쉬워진다.
함수 인수
입력 인수는 적을수록 좋다 (이상적인 인수 개수 0개)
많이 쓰는 단항 형식 : 이벤트 함수
플래그 인수 : 사용하지 말자
이항함수, 삼항 함수 : 단항 함수로 바꾸기 위해 애써야 한다.(신중히 고려해서 사용)
인수객체 : 인수가 2~3개라면 독자적인 클래스 변수로 선언할 가능성을 확인해 보자
인수 목록
동사와 키워드 : 함수와 인수가 동사/명사 쌍을 이뤄야 한다.
부수효과를 일으키지 마라
출력인수 : 일반적으로 출력인수는 피하는 것이 좋고, 함수가 속한 객체 상태를 변경하는 방식을 선택하는 것이 좋다.
명령과 조회를 분리하라
오류 코드보다 예외를 사용하라
try catch
오류 처리도 한 가지 작업이다.
반복하지 마라
중복은 소프트웨어에서 모든 악의 근원이다.
객체 지향 프로그래밍은 코드를 부모클래스로 몰아 중복을 없앤다.
구조적 프로그래밍, AOP , COP 모두 중복제거를 취하고 있다.
소프트웨어 개발에서 지금까지 일어난 혁신은 소스코드에서 중복을 제거하려는 지속적인 노력으로 보인다.
구조적 프로그래밍
함수를 크게 만든다면 입구와 출구가 한 개 있는 게 이득이고
함수가 작다면 return, break, continue를 사용해도 괜찮다.
함수를 어떻게 짜죠?
처음부터 좋은 코드를 짜는 것은 어렵다.
대체로 계속해서 리팩토링 하면서 함수를 수정하여 위의 규칙을 따르는 함수가 얻어진다.
'책 리뷰 > 클린코드' 카테고리의 다른 글
7장 오류처리 (0) | 2023.10.14 |
---|---|
6장 객체와 자료 구조 (0) | 2023.07.25 |
5장 : 형식 맞추기 (0) | 2023.06.28 |
클린코드 4장 : 주석 (0) | 2023.06.21 |
Clean Code(1,2 장) (0) | 2023.05.04 |
댓글