Skip to content
0:00 / 0:00

#clojure#data-drivendesign#jamesreeves

Keynote: Transparency through data by James Reeves

Clojure Days

1.3K subscribers • 4 videos on Hallway

YouTube
  • Recommended by 2 people: 1 on Lobsters and 1 in engineering communities.
  • Presented by James Reeves, lead developer of Ring
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

15K views9 years ago2 recommendations

Software designProgramming languagesLisp and ClojureDesign patternsSimplicity and complexity

James Reeves explains how using plain data structures instead of opaque abstractions makes Clojure codebases simpler and more adaptive to change.

How do we make effective use of data when designing software in Clojure? This talk will provide a tour of the options that are available, and explain how liberal use of data structures can make a codebase simpler and more adaptive to change. About the speaker: James Reeves is the current lead developer of Ring, and is the author of a number of other Clojure web development libraries, including Compojure and Hiccup.

Why it's here

2 people recommend this

What people say. Recommended as an insightful talk on the benefits of data-driven design in Clojure.

u/eval2020in r/Clojure • Recommends

Transparency through data - James Reeves

esakon Lobsters • Recommends

Transparency through data

u/lambdacurryin r/Clojure • Mentions

On “New Clojurians: Ask Anything”

I like integrant. Here are some good videos covering it, Enter Integrant and Transparency through data. >How do you separate out the doing of the business logic with the workings of interacting with the stateful thing? Duct wiki - Boundraries this guide helped alot. So for example I set something up like this. routes takes in a IDatabase protocol which means I could then use shrubbery to pass in a stub for testing. Very much a OOP/DIP/Onion approach to solving the problem maybe someone else has another approach to achieving what you are looking for. (defmethod ig/init-key :people-routes _ {:keys [database }] (ring/ring-handler (ring/router (routes database)))) (defn r…