Sveriges mest populära poddar

Functional Design in Clojure

Ep 111: Loopify!

29 min • 15 februari 2024

Each week, we discuss a different topic about Clojure and functional programming.

If you have a question or topic you'd like us to discuss, tweet @clojuredesign, send an email to [email protected], or join the #clojuredesign-podcast channel on the Clojurians Slack.

This week, the topic is: "trying again". We throw our code in a loop, and it throws us for a loop.

Our discussion includes:

  • Sportify continues!
  • When is it time to stop developing?
  • How do we handle retries?
  • What if you need to recur from catch?
  • How do we recover mid-process?
  • Where should the recovery logic go?
  • Is there a way to get all the critical context at the same level?
  • What should you preserve across a recur?
  • What does it mean to be "loop native"?
  • What is the basic structure for any automation?
  • What is a "single application state"?

Selected quotes

  • It's a lot like having a project on a workbench. You have all of the tools and all the information laid out before you on that workbench. Nothing is tucked in a drawer or inside a cabinet.

  • That's a very important lesson for any developer: you can always stop—at least after it's working.

  • Nothing in the world is solved except by adding another level of abstraction.

  • I was not expecting that level of mutation! I was expecting a Kafka log written in stone!

  • The positive is it has everything. The negative is it has everything.

  • We would like more loop-native code inside of our cloud-native application.

  • Are you suggesting that just because we can, it doesn't mean we should? We're programmers! If the language lets us do it, it must be a good idea!

  • One of the reasons why I like Clojure is because it specifically tells me that I can't do some things that are bad to do.

  • All of the context is in one map. It has everything in it. One map to rule them all!

  • Might this be the fabled "single application state"?

  • We have the thinking function, the doing function, and the assimilate function.

Links

Förekommer på
00:00 -00:00