この質問は、Grails アプリケーションでの作業から生じましたが、レイヤーで開発されたほとんどすべての Web アプリケーションに当てはまります。簡単な例を次に示します。
class OrderService {
// Option 1
def shipOrder(Order order) {
order.status = OrderStatus.SHIPPED
emailService.sendShipmentEmail(order)
// ...
}
// Option 2
def shipOrder(long orderId) {
def order = Order.get(orderId)
order.status = OrderStatus.SHIPPED
emailService.sendShipmentEmail(order)
// ...
}
}
これらのオプションのいずれかが、他のオプションよりも優れていると文書化されていますか?