Agility & Robustness: Clojure spec
summary
Claims that Clojure's spec makes programs both agile and robust by letting developers write declarative, predicative specs that are layered and optional. The talk shows concrete tools: automatic generative testing (defaults to ~100 cases, unlimited by CPU), runtime instrumentation for development-time validation and detailed error explanations, and sample data generation plus conformance to parse and destructure inputs. Spec is at Alpha 12 for Clojure 1.9 and is already used in production.
AI-written summary · about
chapters (27)
- 0:00Intro
- 0:22My Daily Concerns
- 4:04Clojure Power
- 5:59Systemic Generality
- 8:26Pretty Good!
- 11:32spec Answers the Challenge
- 12:18spec Power
- 15:35Correct / Agile / Robust
- 22:15Declaration
- 23:01Arbitrary Predicates
- 23:37Collections
- 24:40Boolean Logic
- 25:17Named Specs
- 26:58spec Syntax with Regexes
- 27:28defn Syntax
- 28:17Maps as Information
- 29:29Functions
- 30:17Function Semantics
- 31:50Validation
- 32:19Explanation
- 33:13Conformance
- 34:49Example Data
- 35:25Example Fn Invocations
- 35:55Robustness
- 36:47Generative Testing
- 37:33Assertion
- 38:27Experience Report
related talks
38mLiving with Spec
40mRunning With Scissors: Live Coding With Data
55mTransforming Enterprise Development With Clojure
39mTransforming Software Evolution: Lessons from 10 Years of Clojure in Production
28mHow startups can move fast with Clojure
40mProgramming Clojure, Smalltalk-Style
35mThrough the Looking Glass
30mBeginner Driven Development
