Elevator Pitch
Building systems in Clojure requires a different way of thinking. Systems are designed bottom-up with recomposability and synthesis in mind versus a top-down framework-driven approach. Partsbin is a library that provides both a reference implementation and philosophy for building composable systems.
Description
It can be difficult to learn to build systems in Clojure. Developers accustomed to stateful, framework-driven approaches may find it challenging to understand how to achieve results in a functional, framework-free world. However, once you learn to build bottom-up, functional, data-driven systems you will never be able to go back. This talk takes you through the practical considerations of building these systems using Partsbin, my library for practically composing systems with Integrant. As valuable as the library itself is the philosophy and approach it uses and and which I will describe.
Topics I will discuss are:
- Writing code bottom-up, with no assumptions regarding surrounding scope or context. This results in implicitly decoupled code.
- Organizing code into business logic, api, system, and application units.
- Specific patterns for how to write code, leverage middlewares, and use other patterns to synthesize components into an application.
Live demonstrations will be included to demonstrate how quickly and easily a system can be synthesized.
Notes
Technical Requirements
- Internet connection
- HDMI out projector
Qualifications
- I’ve gone through the process of learning to build systems in Clojure from the “building it wrong” stage to getting it right, so I know the material and journey other devs may be going through.
- I talked briefly about this idea in the “Simplicity” section of my 2019 Clojure/conj talk (Defeating the Four Horsemen of the Coding Apocalypse) and would like to expand on the idea as a whole talk.
- I’m an experienced mentor and speaker that has given many presentations, both public and privately (at work, for example) on a variety of Clojure and other technical topics. I’m especially good at presenting material in an interesting way to audience members that are struggling with or learning new concepts. Examples: