4 ms·
Certainly, but you're typically much more in control of what you send than what you receive.
by StavrosK 5y ago
Certainly, but you're typically much more in control of what you send than what you receive.
- rbanffy 5y agoYou may also want to do sanity checks but, in those cases, I tend to deliberately abuse the inputs. Send a string, a byte string, some invalid UTF-8, an emoji, an invoice, and ensure that the thing can take more abuse than what the manual says. If, however, the manual says “integer” then it should complain loudly the user is breaking the contract.
- StavrosK 5y ago> If, however, the manual says “integer” then it should complain loudly the user is breaking the contract. Yep, that's why I prefer mypy/typeguard and type annotations for those sorts of things over checking in the body. It's frequently much, much easier to read, and self-documenting, since most IDEs have support for that when calling the function nowadays.
- utucuro 5y agoThe post is not about what you're sending, it is about making sure what you're receiving is what you're getting. The motivation begins with: "Many of our programs accept input from the user. Often we need to validate this input before continuing processing and, in the case of errors, inform the user of any problems."
- StavrosK 5y agoThe post I was replying to is about what you send, though.