[Potlatch-dev] [OSM-talk] Way with only one single node
Steve Bennett
stevagewp at gmail.com
Wed Mar 21 21:52:22 GMT 2012
On Thu, Mar 22, 2012 at 3:27 AM, Andy Allan <gravitystorm at gmail.com> wrote:
> Finally, in other projects I follow the convention of "don't code
> defensively", as described at
> http://www.erlang.se/doc/programming_rules.shtml#HDR11 and elsewhere.
Quote:
"The function will crash if Option neither normal nor all, and it
should do that. The caller is responsible for supplying correct input.
"
So in their example, the worst that happens is a function fails to do
something (and probably raises an exception which is caught at a
higher level). In our case, we write data to a shared database that
the user has no way of detecting and retrieving (in the case of
one-length ways). Defensive programming has its place.
> The save code should "trust" that the data is good. If the data isn't
> good, whatever made it bad should be fixed. Otherwise it's turtles all
> the way down - should the save code check the ids are actually
> numerical, just in case, should it do x, y or z, just in case?
If any of those things are genuine possibilities, are not checked for
by server-side code, and would be harmful, then checking is worth
considering. IMHO.
> So the
> answer is that the input should be checked, somewhere in the
> controller code, and then it should be trusted.
And our strategy for preventing future such bugs?
>My initial thought would be to not create the way until the second
>node was drawn. I think that would also remove a lot of the gnarlyness
>around POI creation, where we are footling with the
>way-that-we-never-actually-wanted as we finish handling the double
>click.
FYI that change will break my recent fix for undo/redo of new ways.
Steve
More information about the Potlatch-dev
mailing list