Ports and Adapters Architecture for Functional Programmers (with Clojure) the small codebases of microservices provide great refuge for the salaried functional programmer.
Mindset shifts for Functional Programming (with Clojure) For more experienced functional programmers, most of this post will seem introductory, but I introduce some more advanced stuff near the end. Functional Programming over Canadian Programming Lately, I've been thinking about this Functional Programming journey I've been on. I thought it started when I was twenty, but It may
Clojure Transducers: Your Composable Data Pipelines What is a transducer anyways? Specifically, from the documentation 'a transducer is a transformation from one reducing function to another'. We can think of a transducer as a context-independent transformation composed of, say, many reducers (like map and filter). If we think of functional programming as a series of transformations
Model-View-Controller, a classic architectural pattern in Clojure I'm sure for some of you Model-View-Controller (MVC) resembles more of an anti-pattern than something to reach for when writing Clojure, but I think it's a great example of what architecture should accomplish, especially what can be accomplished in Clojure. MVC decouples state, state changes, and state usage. One way
A Primer on Clojure Macros One day my squad mate at a Clojure startup committed a macro to the codebase, and I was quick to reprimand them for it as the same functionality could have been implemented with Clojure core functions. Peeling back the decision rationale, I discovered my colleague had never learned the first
Clojure Frameworks: opinions are features, not bugs Ever since I wrote Clojure needs a Rails, folks reach out to ask for my opinion on their web framework for Clojure. What's clear from these discussions is a lot of software developers have no idea what a framework is.
My Guest Spot on Cognitect's podcast Janet A Carr - Cognicast Episode 172In this episode, Christian talks to Janet A Carr about her career, writing, and life as a Clojure Consultant.Cognitect.comJaret Binford
Clojure's typing "problem" we can ship production code with Clojure. A strange bit of grumbling I hear from developers directs their angst toward not having "compile time type checking errors"
Fix your Clojure code: Clojure comes with design patterns (Part 2) This post is the second in a series. You can find the first post in the series here where I covered Null Object, Singleton, Command, Observer, State, Visitor, and Iterator. Patterns * Preamble * Builder * Chain of Responsibility * Proxy * Adapter * Template Method * Flyweight * Strategy Our story continues Edmund, a bright, awkward young
Fix your Clojure code: Clojure comes with design patterns (Part 1) Clojure either directly supports, or easily supports the use of common design patterns like singleton, command, observer, visitor
Clojure needs a Rails, but not for the reason you think I think there's another reason this problem persists in Clojure. There's no Rails for Clojure.
How Clojure works for you Dear Janet, I hope this email finds you well. I know I'm just a fictional character in a fictional email to set up the hook for this blog post, but I was wondering if you could help me speed up our slow library. We use the best algorithms money can
wtf is Clojure inlining anyway If you spend your time digging around clojure.core like I find myself from time to time, you might come across a interesting metadata keyword called :inline. I have never seen :inline in any of the non-core libraries in my career, so I've been digging around to figure out what
Write Clojure for other developers So you finally managed to do it, you started a company after all those water cooler criticisms of your previous employers. You can finally do all those “if it were my company” things. So, after meeting your brilliant co-founder and raising a pile of cash from venture capitalists, you begin