728x90
좋은 함수
1.작게만들기
void authenticateUser() { /* 사용자 인증 */ }
void validateRequest() { /* 요청 검증 */ }
void executeRequest() { /* 요청 실행 */ }
void logRequest() { /* 요청 로그 기록 */ }
2.하나의 함수는 하나의 역할만하기
void saveUser(User user) {
validateUser(user); // 사용자 검증
insertUserIntoDatabase(user); // 사용자 데이터베이스에 삽입
sendWelcomeEmail(user); // 환영 이메일 발송
}
3.함수의 추상화수준을 같게하라
void processOrder() {
validateOrder(); // 고수준 추상화: 주문 검증
calculateOrderDetails(); // 고수준 추상화: 주문 세부사항 계산
updateInventory(); // 고수준 추상화: 재고 업데이트
}
4.길어도 서술적인 이름으로쉽게 읽히는 이름을 사용하라
void updateUserPassword() { /* 사용자 비밀번호 업데이트 */ }
5.함수 인수는 적을수록 좋다
// Before
void createUser(String name, String email, String password) { /* 사용자 생성 */ }
// After
void createUser(User user) { /* 사용자 생성 */ }
6.부수효과를 없게해라
// Before
void updateUserAndNotify(User user) {
updateUser(user);
sendNotification(user);
}
// After
void updateUser(User user) { /* 사용자 업데이트 */ }
void sendNotification(User user) { /* 알림 발송 */ }
7.함수에 명령기능과 조회기능을 같이 넣지마라
// Before
User findUserAndUpdateLastLogin(int userId) {
User user = findUser(userId);
user.setLastLogin(LocalDateTime.now());
return user;
}
// After
User findUser(int userId) { /* 사용자 조회 */ }
void updateLastLogin(User user) { /* 마지막 로그인 시간 업데이트 */ }
8.오류보단 예외를 사용하라.
// Before
int divide(int a, int b) {
if (b == 0) {
return -1; // 오류 코드 반환
}
return a / b;
}
// After
int divide(int a, int b) throws ArithmeticException {
if (b == 0) {
throw new ArithmeticException("Cannot divide by zero");
}
return a / b;
}
728x90
'기타 > 도서' 카테고리의 다른 글
[Clean Code] 주석 (0) | 2024.06.16 |
---|---|
[Clean Code] 네이밍 (0) | 2024.06.16 |