~/talk

Scale By The Bay 2018 Unconference: Omer Van Kloeten

Talkat Scale By The Bay 2018 · 2018-11-15..11-17· [scala, developer-experience]
slides:none on file

Claim: move validations from runtime to compile time using Scala libraries so that things like a port are a refined type (Int in 0–65535) and petting APIs reject a cat ID at compile time via tagged IDs or newtype/opaque types. The talk shows concrete patterns: refined, shapeless/newtype macros, sealed‑abstract constructors, and a repository pattern tying Entity and ID. Result: many runtime IllegalArgumentExceptions become compile errors and reduce tests (not eliminate them); IO and external systems remain untypable. Recommend fatal‑warnings and linters.

AI-written summary · about

  1. 0:00Introduction and birthday edition
  2. 0:42Cost of fixing bugs over time
  3. 2:46Unit testing limitations and pain points
  4. 3:50Compile-time invariants and refined types
  5. 9:10Benefits of refined types
  6. 9:33Limitations of static typing
  7. 10:16Tests are still essential
  8. 10:36Value types for domain safety
  9. 12:24Sealed abstract trick for type safety
  10. 14:16Tagging and opaque types
  11. 16:47Newtype and Scala 3 opaque types
  12. 17:30Persistence and ID separation
  13. 19:01Typed connections with implicits
  14. 20:28Key takeaways and build robustness
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.