YoVDO

Clojure Spec: Expressing Data Constraints without Types

Offered By: ChariotSolutions via YouTube

Tags

Clojure Courses Functional Programming Courses Data Modeling Courses Data Validation Courses Declarative Programming Courses

Course Description

Overview

Explore Clojure's spec library in this conference talk from Philly ETE 2017. Dive into the world of expressing data constraints without types, learning how spec enhances Clojure by providing a system for declarative specifications of data and functions. Discover the benefits of using specs for validation, documentation, destructuring, instrumentation, data generation, and automatic generative testing. Understand the flexibility of adding specs iteratively or selectively to your programs, and gain insights into predicative and structural aspects of spec. Learn about modeling information, syntax operations, and working with points, lines, and polygons. Explore function specs, enhanced documentation, and robustness through instrumentation and generative testing. Gain practical knowledge on using spec in production, including spec transformation, construction, and testing techniques.

Syllabus

Intro
What are we doing?
Data processing
Clojure and data
The Clojure Promise
Why spec?
Why not types?
Predicative
Structural
Generating from collection specs
Modeling information
Syntax - regex ops
Points and lines
Conforming
Polygons
Functional
Function specs
A function spec
Spec with arg constraint
Spec with args/ret constraint
Enhanced docs
Exercising functions
Robustness
Instrument
Generative testing
Successful check
Failing check
spec in Production
Spec specs
Spec transformation
Spec construction
Spec testing


Taught by

ChariotSolutions

Related Courses

Machine learning with Apache SystemML
Cognitive Class
SwiftUI Animations iOS 16 - Animate Anything with SwiftUI
Packt via Coursera
Programming Paradigm Concepts
DataCamp
ManipulaciĆ³n Eficiente de Arreglos con JavaScript
egghead.io
Sprinkle declarative, reactive behaviour on your HTML with Alpine JS
egghead.io