On Wednesday, June 29, 2016 at 2:31:59 AM UTC-4, Egon wrote:
>
> Just to be clear what I consider a *great example* for analyzing generics:
>
> 2. 3+ real-world packages/applications use that package
> *   By real-world here I mean it wasn't written for learning or fun, but 
> rather solving a concrete problem.*
>

How about one (a single) production application with 106 types, all sharing 
three common functions identical except for the type categories they 
operate over?  1411 LOC that could not only be reduced to around 300 
(interesting that my numbers are similar to the one @Mandolyte came up with 
from 'interval') -- although, I'll state again that saving LOC isn't the 
killer feature of this request; it's the fact that a bug fix or other 
change has to be made in 25 different places.
 

> 4. the package is implemented "in the best way"
> *   e.g. linked list would be a bad example, because it's usually a bad 
> solution <https://www.youtube.com/watch?v=YQs6IC-vgmo> in the first place*
>

My example, detailed in another thread, is deserializing XML content from a 
legacy SOAP application, and normalizing and simplifying the data 
structures.  The 106 types, 25 functions, and 1411 LOC is just for the SOAP 
& deserializing.  There's a whole other chunk of code dealing with the 
conversion from type to type that I used introspection for (*that* was a 
mistake!) rather than deal with several more thousand lines of duplicate 
code.

My case is extremely error prone and difficult to maintain safely.  I'm 
afraid to touch the code.  There's enough customization on a couple types 
that templating wouldn't be much help.  I'd *love* suggestions of a better 
way to implement than copy/paste.  I can't even use introspection

The criteria you lay out assumes a public library; bespoke, single-purpose 
applications should also be able to be used as valid examples.

--- SER

-- 
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