Performance: Business logic in services
MEDIUM IMPACT
This affects server response time and how quickly the backend can process requests, impacting the overall user experience and perceived page speed.
public User processUserData(User user) {
validateUser(user); // Separate validation
User savedUser = userRepository.save(user); // DB call isolated
int score = calculateScore(savedUser); // Pure logic separated
savedUser.setScore(score);
return savedUser;
}
private void validateUser(User user) {
if (user.getName() == null) {
throw new IllegalArgumentException("Name required");
}
}public User processUserData(User user) {
// Business logic mixed with database calls and validation
if (user.getName() == null) {
throw new IllegalArgumentException("Name required");
}
user.setScore(calculateScore(user));
userRepository.save(user); // Direct DB call inside logic
return user;
}| Pattern | Server Processing Time | Database Calls | Code Complexity | Verdict |
|---|---|---|---|---|
| Mixed logic with DB calls inline | High (slow) | Multiple per request | High | [X] Bad |
| Separated validation, DB, and logic | Low (faster) | Minimal per request | Low | [OK] Good |