Fork me on GitHub
#clojuredesign-podcast
<
2024-02-08
>
neumann19:02:37

Why does it take longer to gather information about an error than actually fix it? Can we do better than println debugging? In our latest episode, our downloads fail at random, but our dead program won't give us any answers. https://clojuredesign.club/episode/110-contextify/

🚀 2
neumann19:02:49

How do you debug your Clojure code?

jumar03:02:06

Some people in the community frown upon debuggers but I use cider debugger quite a lot with good results

👍 1
Jason Bullers14:02:33

Not related to the actual question, but I too have a "friend" who once was working on writing a configuration definition at work. Our definitions have a "context" that's a dot separated path, like app.data.definition and in a folder with that name, we put the config definition file. Well, when you create a directory in intellij (at the time, it got better about this and considers source directories now), it tries to be helpful and treats dots as package structure (i.e. nested folders). It's also common to collapse empty packages in the project view, so nested directories look like a single dot separated directory. It took an embarrassingly long time for my "friend" to figure out why the config definition wasn't being discovered...

Jason Bullers23:02:13

Portal with tap> is pretty cool

nate06:02:50

Yes!! Portal is awesome!

neumann22:02:59

@U06BE1L6T Nifty! I didn't know Cider had a debugger--I'm not an Emacs user--but I 100% support terminal-based UIs. 😄 Thanks for sharing!

neumann22:02:22

@U04RG9F8UJZ Oh man! Tools being "helpful" has definitely gotten me a bunch of times too!

jumar22:02:54

The debugger is pretty powerful and combined with inspector it's really nice to use: https://docs.cider.mx/cider/debugging/tracing.html You cannot jump up the callstack but you can drill down easily.

👍 1