ahawk, I've been using clojure for years, but can still relate to the issues you are facing, which is why I wrote a debugging/development tool to help. It's called sayid. It can be used directly from the repl, but has an emacs/cider integration that makes it much more powerful.
http://bpiel.github.io/sayid/ In a nutshell, sayid will let you capture all the args and return values from functions as they are executed -- then allow you to inspect, query and visualize them. The project is still in alpha and not thoroughly documented, so if you do decide to try it out and run into any issues, PLEASE get in touch by filing an issue or even emailing me. My address is on my github profile. https://github.com/bpiel Also, I presented it at the last Conj conference in Austin. https://www.youtube.com/watch?v=ipDhvd1NsmE On Sunday, January 8, 2017 at 11:06:34 AM UTC-5, Matching Socks wrote: > > That is an ambitious project. Divide and conquer. One super duper > benefit of Clojure is that if you make a web app with, say, just Ring and > Compojure, you can later transplant that work into a more elaborate app > scaffolding, because it's all just plain maps. > > "quite a lot of map manipulation going on with the request and response > maps" > > On the bright side, map manipulation is *all* that is going on. There are > no side effects. Therefore, it can be very helpful to log the request and > response maps. For example, make a Ring handler that does nothing but log > the request, delegate to the next handler, log its response, and return its > response; then stick that handler wherever in the handler stack makes you > curious. Using the Emacs CIDER REPL you may change the handler stack and > fiddle with logging while the program runs, so logging is a convenient > debugging technique. > > "unless, of course, I read and understand their source" > > On the bright side again, there is not much source code there, at least > compared with what you'd expect in Java. Also, the jar that Maven (etc) > can fetch for you *is* the source code, and Emacs can open such jars and > browse the files inside. > > Some of the libraries have overview documentation that puts the API docs > in context. Keep the Ring SPEC open, and the Liberator graph too if you > can figure out how to view more than a tiny bit of it. > > By all means point out gaps in the docs on the libraries' respective issue > trackers. > -- 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.