Routing in Elm seems a bit clunky at the moment, especially if you have a lot of routes.
For a secured web-app, where one normally would not share or bookmark specific pages (and not use the back-button) -- you could consider dropping routing altogether. On Monday, October 3, 2016 at 9:34:33 AM UTC+2, Peter Damoc wrote: > > NoRedInk codebase is closer to the approach described in > http://elm-lang.org/blog/how-to-use-elm-at-work > The Elm components are integrated in a larger app. > I think they have something like 50k LOC of Elm so that approach scales > quite nicely. > > As for scaling TEA in an app that has 100+ routes, the architecture can > scale but it might make sense to split the functionality across multiple > apps due to size of the deliverable. > If it is an internal app that is served from an internal server, then even > this is less important. > > It is worth noting that the 100+ routes from the above are understood as > pages with distinct functionality NOT pages that have the same > functionality but different content. If the later is the case, elm can > scale with ease and efficiency. > > > > > > > > > On Mon, Oct 3, 2016 at 10:09 AM, Thomas Alexander Vaags < > [email protected] <javascript:>> wrote: > >> There have been some attempts. Apparently NoRedInk has a large >> elm-application in production. But as this is not an opensource-project >> (afaik), we cannot learn from the source code. >> >> For me, as a beginner in Elm, it's difficult to see how TEA (the elm >> architecture) can scale *nicely* into an app with, say, 100+ routes / >> pages. >> >> On Monday, October 3, 2016 at 4:40:08 AM UTC+2, Nathan Feaver wrote: >>> >>> Thanks for the response Charlie. >>> >>> I hadn't realized that there hadn't already been attempts to make a >>> larger scale SPA in Elm. Your lessons learned will definitely be of >>> interest to me. I was suggesting that some rules of thumb be put into the >>> guide for larger applications but I guess we haven't got rules of thumb yet! >>> >>> On Saturday, October 1, 2016 at 12:28:20 PM UTC-6, Nathan Feaver wrote: >>>> >>>> Hi everyone! >>>> >>>> Often it is helpful for me to hear the experience from someone who is >>>> just learning how to use my software. I think the same is probably true of >>>> programming languages so I thought I would share my story of learning Elm >>>> with you. >>>> >>>> The Good Parts >>>> >>>> I started looking at Elm about a week and a half ago and have probably >>>> spent 20 hours reading and watching Elm content and writing Elm code. I >>>> found out about Elm because I have been interested in Elixir and stumbled >>>> into this conference talk by Rob Martin, *Teaching functional >>>> programming to noobs* (Lambda Days 2016) >>>> <https://www.youtube.com/watch?v=bmFKEewRRQg>. I jumped straight into >>>> writing code using Exercism.io exercises. I copied code I saw in examples >>>> but couldn't get too far. I watched Richard Feldman's *Introduction to >>>> Elm* <https://www.youtube.com/watch?v=zBHB9i8e3Kc> and Evan's Let's be >>>> Mainstream <https://www.youtube.com/watch?v=oYk8CKH7OhE>. Those two >>>> talks and occasionally looking up core library docs got me far enough that >>>> I could get through a good number of the Exercism exercises. I was >>>> impressed that the language was so intuitive, that error messages were >>>> sooo >>>> good, that currying was easy, and that using types was both terse and >>>> descriptive at the same time. >>>> >>>> I started working on updating a small personal project and realized I >>>> needed to understand 'The Elm Architecture' so I've been working through >>>> the tutorial with my remaining time in Elm. So far, the tutorial is great >>>> and progresses at a good speed. >>>> >>>> The Rough Edges >>>> >>>> I had a difficult time figuring out where to go for good documentation. >>>> Everything was spread out among multiple resources. My first experience >>>> was >>>> looking at elm-lang.org/docs where I found a dozen or so links that >>>> point to 5 different domains/subdomains. If I had come to Elm without >>>> hearing strong praise from a respected programmer then I'm not sure I >>>> would >>>> kept going. The disorder of the documentation gives the sense that Elm is >>>> a >>>> hobby language rather than production-ready. Elixir handles these concerns >>>> very well: Commonly used libraries have a consolidated guide >>>> <http://elixir-lang.org/getting-started/introduction.html> and >>>> documentation <http://elixir-lang.org/docs.html> within a single click >>>> of the language's homepage. >>>> >>>> Questions I have at this point (that would help me to know if Elm is >>>> worth continuing to invest in): How does 'The Elm Architecture' work with >>>> larger applications? I've seen some examples like the Todo app and the >>>> Flatris clone that have a high-ish number of actions that the app responds >>>> to in `update`. What about an app that spans multiple pages and should >>>> respond to hundreds of actions? Would you split the app into many small >>>> apps? If so, would there be a parent app that delegates actions? Also, can >>>> I use `The Elm Architecture` and Commands/Subscriptions outside of the >>>> HTML >>>> world? I think it would be helpful to answer these questions at some point >>>> in the documentation. >>>> >>>> >>>> Hopefully this ends up being useful. Overall, I have really enjoyed >>>> using the language and will continue to write Elm code in my free time and >>>> look for ways to use it professionally. Thanks for listening! >>>> >>> -- >> 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] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > There is NO FATE, we are the creators. > blog: http://damoc.ro/ > -- 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.
