For anyone interested, I found some supplementary material on Component used in Sean's example: https://www.youtube.com/watch?v=13cmHf_kt-Q (The author discussing the design and rationale behind Component)
just getting started with ring; this lein plugin enabling hot reloading of handlers I'm messing around with is pretty neat.
@radicalmatt If you take a bit of care to write REPL-friendly code, you don't need any of that code reloading stuff.
https://clojure.org/guides/repl/enhancing_your_repl_workflow#writing-repl-friendly-programs for example
At work, we develop against a running REPL and don't use any plugins or middleware for reloading. We evaluate every change as we make it, we write "REPL-friendly" code using #'some-var references (instead of plain some-var) where we need the extra indirection, usually around Ring middleware stacks, and then we don't need to reload or restart anything: the web app is always running the latest code.
This is what I am referring to https://github.com/ring-clojure/ring/wiki/Setup-for-development#setup-using-the-lein-ring-plugin - is this not necessary if I were to pass a handler reference to jetty/run-jetty ?
Correct. And just start the server yourself from your REPL.
That ring plugin is just a bad idea in my opinion.
Take a look at this little example https://github.com/seancorfield/usermanager-example
It's REPL-friendly and avoids any plugins.
I'll have a look Sean, thanks