Здравствуйте, Mamut, Вы писали:
A>>Ограничение "нельзя менять amount у processed order" выглядит стабильным.
M>Увы, нет
Начиная с "все спецификации ad-hoc" из оригинального сообщения и до последнего тикета, который таки позволяет увеличивать сумму заказа для pre-paid закаов согласно конфигурации магазина. И это связано с дополнительной логикой — что, если
Вот тут как раз и поможет компилятор — как раз с ad-hoc изменениями требований. Если раньше с processed order можно было делать все, что угодно, а потом вдруг "концепция поменялась" и amount у него больше менять нельзя — достаточно отразить это в определении типа, а дальше компилятор сам ткнет во все места, где код не соответствует новому определению, и попросит дописать соответствующие ифы вроде
if (!processed) change_amount(), чтоб гарантировать, что у processed оредров никто amount менять не будет.
Без типов — придется просматривать руками все вызовы change_amount по всему проекту и пытаться понять, где у нас processed, где не processed, а где рыбу заворачивали.