클린 코드 : 함수도서2024. 6. 29. 15:59
Table of Contents
728x90
728x90
함수
작게 만들어라
- 함수를 작게 만들자
- 모든 함수를 정말 작게 못해도 4-6줄 정도로 줄여야 하나본데? 이러면 로직 넣을 구멍이 있나...?
한 가지만 해라!
- 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야한다. 그 한가지만을 해야 한다
추상화 수준 참고
https://onestone-dev.tistory.com/3
Switch 문
- 일반적을 잘 안 쓰는 것이 좋다고 함
- 다형적 객체를 생성하는 코드 안 에서 한 번정도 봐준다
public abstract class Employee {
public abstract boolean isPayday();
public abstract Money calculatePay();
public abstract void deliverPay(Money pay);
}
-----------------
public interface EmployeeFactory {
public Employee makeEmployee(EmployeeRecord r) throws InvalidEmployeeType;
}
-----------------
public class EmployeeFactoryImpl implements EmployeeFactory {
public Employee makeEmployee(EmployeeRecord r) throws InvalidEmployeeType {
switch (r.type) {
case COMMISSIONED:
return new CommissionedEmployee(r) ;
case HOURLY:
return new HourlyEmployee(r);
case SALARIED:
return new SalariedEmploye(r);
default:
throw new InvalidEmployeeType(r.type);
}
}
}
함수 인수
- 가장 좋은거 인수 0 , 1 , 2 이 순서대로 안 좋아짐
- 테스트 관점에서 인수 있는게 더 빡셈
플래그 인수
- 플래그 인수는 추하다. 인수의 참거짓에 따라 로직이 분리가 되니까 근데 이거 없으면 뭐 어떻게 처리하냐;;;
인수 객체
- 인수가 2-3개 필요하다면 그냥 독자적인 클래스 변수로 선언하는 가능성도 염두해두자
- 눈속임 같지만 개념을 표현하기에 봐준다
부수효과 일으키지마라
부수 효과
함수의 실행으로 함수 외부 상태가 변경되는 것을 뜻합니다.
Try/Catch 블록 뽑아내기
- try/catch 블록 안에서 사용되는 로직을 메서드화 해서 처리하는 것이 깔끔하다
- 정상동작과 오류 처리 동작을 구분하자
참고
https://product.kyobobook.co.kr/detail/S000001032980
728x90
728x90
'도서' 카테고리의 다른 글
클린코드 : 객체와 자료 구조 (0) | 2024.07.07 |
---|---|
클린코드 : 형식 맞추기 (0) | 2024.07.07 |
클린 코드 : 주석 (0) | 2024.07.07 |
클린 코드 : 의미 있는 이름 (0) | 2024.06.29 |
클린 코드 : 깨끗한 코드 (0) | 2024.06.29 |
@스루나루 :: 스루나루
하고 싶은 걸 하고 되고 싶은 사람이 되자!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!