On Tuesday, August 23, 2016 at 11:43:49 AM UTC-7, OvermindDL1 wrote:
>
> On Tuesday, August 23, 2016 at 11:24:22 AM UTC-6, Richard Feldman wrote:
>>
>> You are on the road to #2, so my macro-level suggestion would be to go 
>> back to #1. :)
>>
>
> #1 also ends up making utterly *huge* model and message unions though, 
> with extremely non-reusable parts.  :-)
>

Regarding re-usable parts, I definitely recommend making things reusable on 
an as-needed basis. Splitting out a helper function takes about two 
seconds. ;)

As for big models, they are easy to maintain in Elm. *I highly recommend 
big models!*

At work we have 36,000 LoC of production Elm. One of our most complicated 
pages has a Model with 55 fields in it, and a Msg with 40 type 
constructors, and it feels *nice to maintain*. A year ago it was a bunch of 
nested React components and everyone dreaded touching it. Now we make 
changes to it all the time and it's no big deal.

Having that big a Model and that big a Msg sounds like it ought to be 
painful, but in practice, it's actually great. We don't talk about 
splitting it up because there's no pain point. I understand the reflex to 
eagerly split things up, but as counterintuitive as it sounds, I think it's 
the exact opposite of what leads to a good experience in Elm. :)

"If it ain't broke, don't fix it" is a good mantra here.

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to