Hi Miguel,

When I started clojure and web development I faced the same questions for 
some long time. Also it took me a lot to figure out how to have the best 
developer experience (regarding web stuff).
All my findings boil down into this leiningen template: 
https://github.com/sveri/closp

It delivers

* two different environments (development and production)
* figwheel for clojurescript during development (no need to restart)
* a combination of components and ring dev environment for not having to 
restart the JVM

While figwheel delivers everything needed for cljs side it was not so easy 
for clojure development.
The trickiest part was to make the reloading of namespaces work in a web 
environment, I tried several libraries, but none gave the full experience. 
So I chose to integrate Stuart Sierras component library. 
This wayI finally gained hot code deployment where it works, templates 
reloading (selmer templates) and a manual restarting option, which I only 
need when I change compojure routes.
Manual restart does not mean to restart the server, but running a "restart" 
function which will just reload all changed namespace and pick up changed 
routes.

You might want to try it out or just look at this namespace: 
https://github.com/sveri/closp/tree/master/resources/leiningen/new/closp/clj/components
 
plus 
https://github.com/sveri/closp/blob/master/resources/leiningen/new/closp/clj/user.clj

I do all this using a command line for fighweel and cursive with a repl 
started inside cursive for the server environment.

Best Regards,
Sven

PS: It might be that the template does not compile currently, if so, you 
just have to adopt the namespace that the compiler complains about. I will 
fix that in the next version.

Am Montag, 5. Oktober 2015 12:00:37 UTC+2 schrieb Miguel Ping:
>
> Hi Guys,
>
> I've been doing some personal clj for a while, but I never quite grokked 
> the whole REPL thing. I normally use Lighttable and/or Cursive as editors, 
> I can set up breakpoints and debug the code, but for web I'd like to know 
> how seasoned developers work.
> AFAIK people fire up the repl and "do everything from there" but I still 
> don't understand some parts:
>
> - do you code functions in the repl and copy them to respective files?
> - do you edit files directly and hook them into the repl?
> - how do you set breakpoints?
> - can you do hot-replacement easily? I always see a bunch of stack traces 
> while using lein and ring with reload flags
> - is there an article or screencast explaining the "feel" of this?
>
> My current worfklow is just starting > lein ring server and developing, 
> but my general impression is that I need to restart it sometimes.
>
> As I understand it, the repl workflow is very much a lisp thing.
> Thanks!
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to