Quoting robert engels (2018-11-25 01:39:30)
> You kind of made my point, when you state “it’s either a slice or a
> map”… Well, what if the resource needed to be ordered, which is why the
> previous method has List in its name, but the method was actually
> returning a map.

If the authors of meta.ExtractList made this design mistake, why would
we expect them not to have done the same thing when declaring a wrapper
type? e.g.

    type List map[string]Resource

I'll point again to this snipped from my last email:

> > if I'm not already familiar with the APIs involved (which I'm not),
> > changing it to e.g:
> >
> >    var objList ResourceList
> >    objList, err := ...
> >
> > Does not give me any additional insight.

> Yes, someone should of caught that in the code review for the
> extractList method, but if someone didn’t, the error is being compounded
> here, with no obvious way to detect that during a code review…

If I find myself forgetting/misunderstanding bits of an API that I have
control over when reviewing places where it's used, I should go fix the
API.

There is simply no substitute for this. Optimizing for the case where
you're already building on a house of cards is a fools errand.

This really reads like a case of "new feature is scary, let's put
caution tape all over it" that you see people making the case for any
time anyone adds a new feature to a language. I think this is more about
what you're used to than what actually makes for readable code.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to