5 ms·
Pretty simple Webapp that you could have done 7 years ago. That not necessarily a bad thing but I wouldn't develop a webapp with those tools. Specifically the
by nickik 7y ago
Pretty simple Webapp that you could have done 7 years ago. That not necessarily a bad thing but I wouldn't develop a webapp with those tools.
Specifically the 'Component' library. I really didn't enjoy working with it and it one of the most complex to understand parts of our web application.
So while this seems like a fun set of slides (I have not watched the presentation yet), it's not what I would call a great introduction to Web development in Clojure overall.
- dmcgillen 7y agoI would have thought integrant would have been the choice over component these days.
- dotemacs 7y agoYou do have alternatives to the `component` library. This new library, `clip`, might sit better with you: https://github.com/juxt/clip https://github.com/juxt/clip
- dkersten 7y agoClip looks interesting, although my favourite 'component' alternative is Integrant[1] -- your config can be just EDN and your start/stop functions are added as multimethods. Its beautifully little ceremony. Incidentally, the Duct[2] framework which builds on top of Integrant is my favourite way to get complex applications running. Currently using it for a number of different services and its a very pleasant experience. (I'm sure clip is too, Juxt do good work) [1] https://github.com/weavejester/integrant https://github.com/weavejester/integrant [1] https://github.com/duct-framework https://github.com/duct-framework
- nickik 7y agoI use 'integrant' for my projects. I have not yet tried 'clip'.
- ilikehurdles 7y agoWhat a surprise that the stateful edges of the application are the most complex! I didn't mind component in the past but we just started a project with mount and I really dislike working with that. Seems like there are a lot of ways to shoot your own foot with any of these libraries because there is no "one true way" to integrate them into an application. I haven't tried integrant yet but everyone and their dog seemed to be using it at the 2019 Conj. I would totally start a project with pedestal today though.
- dm3 7y agoOut of curiosity - what are the pain points related to Mount?
- ilikehurdles 7y agoIts composability is a bit of a double edged sword. While it leads to a more declarative style of state management, I've found our implementation of it to lead to confusion about when /where/which states are swapped in or out. But honestly I think anyone can have a great or cruddy experience with any state management library depending on how it's weaved into the code, and I don't blame the library so much as I blame our implementation thus far.
- minikomi 7y agoFrom my experience with mount, smaller blocks composed in higher order functions which except/use parts depending on config maps etc. are key to leveraging it. It's amazing to have an app built up of composable dependencies which just click together depending on your codes dependency tree though. I found the win was thinking about what exactly was needed for each part of the app and then not fighting but embracing that tree.