Poll for Intermediate to Advanced topics that people struggle with

563 views
Skip to first unread message

Jeff Schomay

unread,
Apr 24, 2017, 10:06:53 AM4/24/17
to Elm Discuss
Hello,

I am considering doing some training material on working with Elm in production.  I want to focus on areas that people struggle with after they are already familiar with Elm.  What concepts continue to confuse you?  What product requirements have been difficult to achieve with Elm?  What is most painful about your Elm codebase?

Some topics I have already thought of:

- decoders
- debouncing (http autocomplete input field for example)
- scroll to element
- testing
- unwieldy update functions
- api design

If you have anything you'd like me to consider, please add it to the list.  Thank you!

Peter Damoc

unread,
Apr 24, 2017, 10:24:05 AM4/24/17
to Elm Discuss
Scaling. 

Most successful Elm adoption approach has been the NoRedInk approach of implementing bits of the UI in Elm.
This effectively creates a self contained Component that one can interact with from some container framework (e.g. React).

There is however another path, a more dangerous path, where one starts with Elm and stays in Elm as much as possible. 
On this path there is very little assistance. 

Here are some topics: 

- structuring large apps 
- using build managers with Elm (webpack, gulp, etc.) 
- options around responsibilities (e.g. using Elm with CSS libraries like Bootstrap via webpack & SASS loaders) 
- managing routing
- non-hash SPA routing
- managing authentication
- storage interfaces (interfacing the code with the databases with some kind of Store construct)
  
Besides these topics, you could also explore integrating external libraries with Elm

- implementing a command processor that allows an Elm app to interact with a bunch of JS libraries though a single pair of ports.
- interacting with famous UI libraries like CodeMirror or Google Maps 
- using web-components
 

 

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



--
There is NO FATE, we are the creators.
blog: http://damoc.ro/

Tolga Paksoy

unread,
Apr 24, 2017, 11:03:53 AM4/24/17
to Elm Discuss
One thing I struggle with is setting up a project structure where I can be the most productive when using Elm. Things like editors, tooling, hot-reloading, not having to keeping my backend models in sync with my Elm models, etc. I feel like I'm not as productive as I can be when I'm writing Elm. It's a big step in the right direction, but tooling is very, very important to me.

Eric G

unread,
Apr 24, 2017, 11:30:10 AM4/24/17
to Elm Discuss
Data modelling and refactoring. "Making impossible states impossible", perhaps starting with basic problems and working up to more realistic tangles of conditions.

Dmitry Utkin

unread,
Apr 24, 2017, 3:34:51 PM4/24/17
to Elm Discuss
- Interacting with 3rd party libraries that use DOM and have multiple event-related callbacks
- `Chaining` Cmds and Msgs
- Fighting the lack of interfaces while designing own data structures

Christophe de Vienne

unread,
Apr 24, 2017, 11:55:00 PM4/24/17
to elm-d...@googlegroups.com
One thing I did not figure yet is how to make several components in a
page efficiently interact with each other.

Ideally I would like a single program with one model and several
sub-views mounted on several nodes in the dom-tree (for example a basket
widget and a "myaccount" one).

I did such a thing with react/redux in a transition phase toward a SPA,
and it was a nice way to iteratively integrate the new architecture in
an existing application.

The only way I can think of right with my current knowledge of elm is to
use ports to have some messages sent from a component to the others, but
it feels non optimal.

I think having a clear way to achieve this would makes it easier to
progressively integrate elm in an existing app.
> --
> 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...@googlegroups.com
> <mailto:elm-discuss...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout.

--
Christophe de Vienne

Kurt Mueller

unread,
May 1, 2017, 1:13:13 PM5/1/17
to Elm Discuss
I really like this list. I would also like authorization discussed as well.

Kurt
To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Alan McCann

unread,
May 2, 2017, 10:10:03 AM5/2/17
to Elm Discuss
I echo Peter Damoc's entry + authentication (e.g. JWT)


On Monday, April 24, 2017 at 10:06:53 AM UTC-4, Jeff Schomay wrote:

Simon

unread,
May 2, 2017, 3:31:39 PM5/2/17
to Elm Discuss
Like Peter, I think the key issue is how to build a large app with 1000 line files.

Simon

unread,
May 2, 2017, 3:32:01 PM5/2/17
to Elm Discuss
with should read 'without'

Erik Lott

unread,
May 2, 2017, 4:18:56 PM5/2/17
to Elm Discuss
For the folks who are struggling with authentication, are you having issues with authentication in general (elm, javascript, other), or is there an issue implementing authentication specifically in Elm? 

Richard Feldman

unread,
May 8, 2017, 3:57:01 AM5/8/17
to Elm Discuss
This open-source Elm SPA uses JWT authentication...maybe it's useful? https://dev.to/rtfeldman/tour-of-an-open-source-elm-spa

sergii.k...@zalando.de

unread,
Jun 26, 2017, 10:10:32 AM6/26/17
to Elm Discuss

The biggest problems with Elm for me was (and maybe are):
- What is tagged type and how and why to use it. 
- Cmd, Msg, Task, Subscription, effects - translation for a JS developer, please.
- SPA routing (still a pain for something little more complex than "hello world")
- Where is my UI components? (Reusing code, cross-component and child -parent communication)
- Http, Json, store responses and errors (before and after RemoteData package)
Reply all
Reply to author
Forward
0 new messages