News for hackers. Stuff that matters.
Re:Why I Don’t Talk to Google Recruiters by perfmode on Tuesday February 21, 2017 @01:48PM (#13698238)
When data comes in over the wire, you probably shouldn't be making assumptions about what's nullable. You should write a parser that fails gracefully if it receives unexpected input.

It's the robustness principle.

https://en.wikipedia.org/wiki/Robustness_principle

Re:Why I Don’t Talk to Google Recruiters by squeaky-clean on Tuesday February 21, 2017 @03:18PM (#13699458)
> When data comes in over the wire, you probably shouldn't be making assumptions about what's nullable.

I have to work with their APIs often (as well as Amazon, Facebook and a couple other big players, they're all equally awful).

Their documentation will tell you a type is an integer and will never be null. They will do this for 3 months, and then change it to send a string that can be nullable or empty string, without telling you or updating API versions. It goes beyond robustness. It's the "BigCorp will actively lie to you in their documentation" principle.

Re:Why I Don’t Talk to Google Recruiters by Drdrdrq on Tuesday February 21, 2017 @01:58PM (#13698389)
You're missing the point. Sure, you should make it fil gracefully on unexpected input. But Google shouldn't change APIs in a way hat causes 3rd party apps to fail at all.
Re:Why I Don’t Talk to Google Recruiters by perfmode on Tuesday February 21, 2017 @02:00PM (#13698422)
Third party apps wouldn't fail if they were correct in the first place. Failing gracefully on unexpected input is the way a competent engineer would structure their program.
Re:Why I Don’t Talk to Google Recruiters by ethbro on Tuesday February 21, 2017 @02:29PM (#13698850)
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"?
Re:Why I Don’t Talk to Google Recruiters by protomyth on Tuesday February 21, 2017 @02:39PM (#13698992)
If 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".

Re:Why I Don’t Talk to Google Recruiters by ethbro on Tuesday February 21, 2017 @02:51PM (#13699168)
That'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."
Re:Why I Don’t Talk to Google Recruiters by yawaramin on Tuesday February 21, 2017 @03:03PM (#13699316)
'Liberal in what you accept from others' in this case would mean being prepared to handle nullable JSON fields.
Re:Why I Don’t Talk to Google Recruiters by klodolph on Tuesday February 21, 2017 @03:01PM (#13699297)
Ideally 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.
Re:Why I Don’t Talk to Google Recruiters by perfmode on Tuesday February 21, 2017 @03:19PM (#13699463)
Indeed it is an art.
Re:Why I Don’t Talk to Google Recruiters by noir_lord on Tuesday February 21, 2017 @03:12PM (#13699398)
production 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.
Re:Why I Don’t Talk to Google Recruiters by Drdrdrq on Wednesday February 22, 2017 @01:41PM (#13707944)
"Failing gracefully" is still failing. I don't want my app to fail, gracefully or otherwise.