// 🚫 不良实践:一个函数做太多事情
function processOrder(order) {
// 验证订单
if (!order.items || order.items.length === 0) {
throw new Error('订单不能为空');
}
// 计算总价
let total = 0;
for (let item of order.items) {
total += item.price * item.quantity;
}
// 保存到数据库
saveToDatabase(order);
// 发送确认邮件
sendEmail(order.customerEmail, '订单确认');
// 更新库存
updateInventory(order.items);
return total;
}
// ✅ 清洁实践:职责分离
function processOrder(order) {
const validatedOrder = validateOrder(order);
const total = calculateTotal(validatedOrder);
const savedOrder = saveOrder(validatedOrder);
notifyCustomer(savedOrder);
updateInventory(savedOrder.items);
return total;
}
function validateOrder(order) {
if (!order.items || order.items.length === 0) {
throw new Error('订单不能为空');
}
return order;
}
function calculateTotal(order) {
return order.items.reduce((total, item) => {
return total + (item.price * item.quantity);
}, 0);
}