4 ms·
Is there a functional difference between "my production code suddenly stopped processing work because it rejected a newly nullable input value" vs "my productio
by ethbro 10y ago
Is there a functional difference between "my production code suddenly stopped processing work because it rejected a newly nullable input value" vs "my production code suddenly stopped processing work because it crashed on a newly nullable input value"?
- protomyth 10y agoIf the crash gives an attack vector for a security threat then there is. Personally, "Be conservative in what you do, be liberal in what you accept from others" is a bad policy in the modern world. It should be "Be conservative in what you do, be strict as if you don't trust them in what you accept from others".
- ethbro 10y agoThat's a valid point if it's security-critical. My initial response was with regards to grandparent comments arguing over semantics, when the end results in both cases was "successful processing ceased because of an API change."
- yawaramin 10y ago'Liberal in what you accept from others' in this case would mean being prepared to handle nullable JSON fields.
- klodolph 10y agoIdeally it's more like "my production code skipped over 1% of batch jobs because it didn't expect the null values" or something like that. Handling errors gracefully is a bit of an art unto itself.
- perfmode 10y agoIndeed it is an art.
- noir_lord 10y agoproduction code that rejects a suddenly nullable input value is more deterministic than "something crashed" and can be handled better (triggering a watchkeeper, notification) rather than relying on someone paying attention to the crash logs.