Hi Everyone,

I'm taking part in an effort to introduce REPL-Driven Development at my 
shop. The shop has historically been based in PHP/Python/javascript and 
similar languages and most devs there have their workflows formed by that 
technology.

I'm used to using a REPL or REPL-connected editor to develop and debug code 
but I've always struggled to articulate exactly why and how I go about 
doing that, other than saying that it "tightens the feedback loop like 
nothing I've ever seen," which I think is descriptive yet still not 
particularly helpful.

I'm wondering if there's a collection of techniques somewhere online. I've 
spent some time googling for things like it but I'm coming up mostly empty.

I watched this years ago and it seems 
pertinent: https://www.youtube.com/watch?v=_B_4vhsmRRI

I also found Jay Field's RDD post which I had read before, but sort of just 
states the same thing I already said.

Some examples of techniques that aren't possible without a REPL

1. (def *foo* (arbitrary expression))

Modify a function definition to capture a var and then run what you're 
working on to have a value you can interact with as you continue to 
develop. This is also incredibly useful when debugging code because you can 
capture the args to a function and then work with and inspect them offline.

If you need to capture something in a let chain you can `_ (def …)` handily.

2. Interactively modify a function definition when you believe you have a 
solution and verify that it works immediately (no release!)

I think the thing that I find hard to express about this is that all the 
advice boils down to "You have the entirety of your language instantly at 
your disposal to debug and develop anything" which is both true and not 
very helpful if the tightest feedback loop you've used is TDD.

Any ideas?

--

In Christ,

Timmy V.

http://blog.twonegatives.com/
http://five.sentenc.es/ -- Spend less time on mail

-- 
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