Designing code without types
summary
Argues that using Groovy with optional types and a minimalist design produced smaller, clearer code for a production site (eventtricks.com), with fewer tests and surprisingly few runtime type errors; tooling used includes Spock data tables, Grails plugins and IntelliJ. Notes tradeoffs: Haskell’s strong types give provable correctness but cost hours of abstraction, while optional types reduce coupling by keeping types at edges (validation, DB) and require strict naming, tiny methods, clear contracts and modularization.
AI-written summary · about
chapters (19)
- 0:00Intro
- 3:22Who am I
- 4:09What Im doing
- 5:03Why this talk
- 5:39Early professional essay
- 7:53Code designer
- 9:16I love writing code
- 10:39What are optional types
- 11:27Expectations
- 12:38Groovy
- 16:04Optional types
- 20:41Cost of abstraction
- 23:20Strong coupling
- 27:31Contract
- 33:39Conclusion
- 35:44Always go to optional types
- 37:36More changeable code
- 38:19Questions
- 39:24QA
related talks
30mBetter Code Design with Types and Concepts.
46mThoughtful Software Engineering
01h 05mPhilosophical Architecture in Grails
55mThe Zen of Programming. A personal journey towards writing beautiful code
34mHow I learned to stop worrying and love Functional Design
39mCoding with dinosaurs
01h 03mTactical Design
50mPrinciples of Elegance
