Код IT Загрузка примера кода…

Java main.java
// Плохо: глубокая вложенность
public void processOrder(Order order) {
    if (order != null) {
        if (order.getItems() != null && !order.getItems().isEmpty()) {
            if (order.getCustomer() != null) {
                if (order.getCustomer().isActive()) {
                    // 5 уровней вложенности...
                }
            }
        }
    }
}

// Хорошо: ранний выход
public void processOrder(Order order) {
    if (order == null) {
        throw new IllegalArgumentException("Order cannot be null");
    }
    
    if (order.getItems() == null || order.getItems().isEmpty()) {
        throw new OrderValidationException("Order must have items");
    }
    
    if (order.getCustomer() == null) {
        throw new OrderValidationException("Customer is required");
    }
    
    if (!order.getCustomer().isActive()) {
        throw new OrderValidationException("Customer must be active");
    }
    
    // Основная логика
}
// Плохо: глубокая вложенность
public void processOrder(Order order) {
    if (order != null) {
        if (order.getItems() != null && !order.getItems().isEmpty()) {
            if (order.getCustomer() != null) {
                if (order.getCustomer().isActive()) {
                    // 5 уровней вложенности...
                }
            }
        }
    }
}

// Хорошо: ранний выход
public void processOrder(Order order) {
    if (order == null) {
        throw new IllegalArgumentException("Order cannot be null");
    }
    
    if (order.getItems() == null || order.getItems().isEmpty()) {
        throw new OrderValidationException("Order must have items");
    }
    
    if (order.getCustomer() == null) {
        throw new OrderValidationException("Customer is required");
    }
    
    if (!order.getCustomer().isActive()) {
        throw new OrderValidationException("Customer must be active");
    }
    
    // Основная логика
}