I’m trying to wrap my head around Stuart Sierra’s component architecture and how it has been implemented as part of Chestnut.
Something that’s been quite troublesome for me is coding server-side and client-side simultaneously. First, it’s not immediately clear that a separate Ring is spawned on port 10555 (while Figwheel’s own http-kit is spawned on port 3449). Second, if I run cljs-repl
I lose my server context unless I connect to it via nREPL separately. Lastly, every time I make a change to the server, I need to issue a reset
that basically drops everything and I lose my cljs-repl
session.
I have the feeling that I’m doing something terribly wrong because Clojure development via REPL is usually a lot more fun than this. The current workflow I’ve described above has drained the joy out of iterative development.
What are your thoughts?