Warning message

  • The service having id "twitter" is missing, reactivate its module or save again the list of services.
  • The service having id "facebook" is missing, reactivate its module or save again the list of services.
  • The service having id "google_plus" is missing, reactivate its module or save again the list of services.
  • The service having id "linkedin" is missing, reactivate its module or save again the list of services.

Presentation: Contracts in Clojure: settling Types vs Tests

Location:

Duration

Duration: 
10:35am - 11:25am

Abstract

Clojure makes highly functional programming fun... until it isn't. Runtime type errors from a function that was returned from another function? I'm longing for Scala's compiler errors! Nested maps of data make testing easier... until "Wait, what's in there again?" I want a little bit of typing in strategic places: enter Prismatic's Schema library. What look like types are really contracts. They're even more powerful than types: they verify values as well as shapes. Exercised in generative tests, these contracts satisfy my type cravings without the pain of satisfying a compiler. There are limitations; schemas can't express relationships between input and output types... or can they? Schemas don't express parameterized types... or can they? Explore the potential of contracts as the best-yet compromise between types and tests.  No Clojure experience (or interest) needed.

Similar Talks

HotSpot JVM Performance Optimization @Twitter

Tracks

Covering innovative topics

Monday Nov 16

Tuesday Nov 17

Wednesday Nov 18

Conference for Professional Software Developers