Hacker News new | ask | show | jobs
by mootothemax 3567 days ago
>https://en.m.wikipedia.org/wiki/Robustness_principle

You need to be careful of where you place the emphasis on that, though:

Be -liberal- in what you accept.

vs

Be liberal in what you -accept-.

2 comments

Right - you accept URIs. That's fairly liberal.

> Be conservative in what you do

However, you only handle specific schemes and ignore the rest.

Yeah, apologies, I was being pretty petty.

My hopefully-better-expressed point is that it's easy to interpret the robustness principle in different ways, some of which lead to better code, and some of which... don't.

No worries. I think the philosophy is rooted in the fact that you can't control what other parties will send you; you can only control what you send in response. So that's the main thing to keep in mind.

It's sort of like the good life advice you hear occasionally: you can't control other peoples' actions; only your own. Emotional maturity, etc.

Isn't that missing the point of the robustness principle, which is more related to say, networking, and accepting things that aren't strictly to RFC spec, but when sending things, you match the spec to the letter?
I've found it useful in software design in general.
Be liberal in a well-defined way in what you accept. Accepting a variety of input is fine, as long as it is formally defined and recognized. The robustness principle is not an excuse to be sloppy with the input.

(why? see [2] in my other post, "The Science of Insecurity")