I've been using Elm for about 4 weeks now and having generally been loving 
it. An area that I'm really having trouble with though is architecture. The 
basic TEA is a fantastic foundation but the guidelines are really very 
limited with regards to requirements of a typical SPA. 

* Components - the best advice I've heard is to extract view/model/update 
separately, as we've seen with elm-mdl this only goes so far though. In the 
end every large application is going to end up with it's own framework 
similar to elm-mdl so this seems to be an issue that needs to be resolved 
somehow. 
* Separation between view model(component state) and application model 
(records from the server) - previously I've always had these two separated 
which has meant that I can have multiple views updating the same server 
records. 
* Services - when I've had cross-cutting concerns I would typically manage 
them in a service tier, e.g. I'm using websockets and want to update the 
view optimistically. Managing the optimistic vs confirmed state isn't 
something that I'd expect to have abstracted away from the view.

I'm not really looking to resolve these issues here but I do feel like the 
community is going in circles. Every day we hear the same questions like 
"how does parent-child communication work?" but the advice that is given is 
different depending who you ask (and always feels unresolved). 

A general concern I have is that the impression that's given is that 
abstraction is treated as something which should be avoided. This seems 
unworkable for large SPAs. It gives the impression that perhaps no one in 
the Elm community is really building large applications. 


These are my concerns and issues, what I'm really looking for though is an 
approach to move things forward. Given that there are existing frameworks 
with well understood architectures I wonder if we should work on guides of 
the form Elm for React users or Elm for Ember users and try to translate 
the concepts from those frameworks into practical solutions within Elm. I 
think this would help clarify the advice and perhaps uncover areas where we 
need to give some more thought.

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