Ответ
На одном из проектов я упустил важный нюанс при проектировании API для интеграции с платежной системой. В требованиях было указано, что система должна поддерживать возвраты платежей, но я не учёл сценарий частичного возврата.
В результате пришлось дорабатывать API уже на этапе разработки, что привело к задержке релиза. Ошибка была в недостаточно детальном анализе бизнес-процессов.
Пример кода (изначальный вариант):
class PaymentService:
def refund(self, payment_id: str, amount: float):
# Только полный возврат
if amount != self.get_payment_amount(payment_id):
raise ValueError("Only full refunds supported")
Исправленный вариант:
class PaymentService:
def refund(self, payment_id: str, amount: float):
if amount <= 0 or amount > self.get_payment_amount(payment_id):
raise ValueError("Invalid refund amount")
# Логика частичного возврата
Вывод: теперь всегда уточняю edge-cases и неочевидные сценарии у заказчика.