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 elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to