This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-05-23
Channels
- # announcements (29)
- # babashka (6)
- # beginners (55)
- # biff (4)
- # clj-kondo (5)
- # clojure (162)
- # clojure-austin (2)
- # clojure-europe (38)
- # clojure-nl (1)
- # clojure-norway (9)
- # clojure-sweden (2)
- # clojure-uk (10)
- # clojuredesign-podcast (5)
- # clojurescript (7)
- # conjure (8)
- # core-async (4)
- # cursive (34)
- # datahike (13)
- # datomic (9)
- # fulcro (5)
- # holy-lambda (2)
- # honeysql (1)
- # hugsql (3)
- # hyperfiddle (22)
- # jobs (5)
- # london-clojurians (1)
- # malli (2)
- # matrix (3)
- # off-topic (32)
- # pedestal (26)
- # polylith (18)
- # reitit (5)
- # releases (1)
- # ring (29)
What code is the essence of an application? Is it concentrated together or spread all over the codebase? In our latest episode, we find a clear and pure heart in our application, unclouded by side effects. https://clojuredesign.club/episode/117-pure-understanding/
In response to the podcast, I wanted to say the side effects are the hard part. Pure functions and data models are usually much simpler by comparison - the logic is unencumbered by edge cases over hardware and other failures. To my mind, it’s why the functional core / imperative shell is so attractive. I slightly got the impression that you were claiming that working with the models was the hard part. Was I listening wrong?
@U04V5V0V4 Oh that's interesting that it came across that way. I wasn't try to communicate that working with pure models is hard, per se. I was trying to say that my goal is to maximize the amount of code in pure models and minimize the amount of code in any function that has a side effect. That means most of the code ends up in pure models, so most of the effort is there too. I would agree that most of the suffering and thrash is around side effects!
Yeah I mean the true pain usually comes from handling errors and exceptions from the messy / unreliable / complex edges ... and then we can do the hard work of making the code actually do what we want 🙂 so I think we're on the same page
