Iowa Code Camp - Spring 2023
Similar philosophy to Test Driven Development, we instead start with the abstractions and types which make up our algebra and then fill in the implementation/interpreter of that algebra.
modules/type-driven-dev
- Actions (case objects to start)
- Events (case objects to start)
- Aggregates (traits with no implementations)
- Take in action and return event
- Business Activities (traits with no implementations)
- Fill in return types handling the business failure conditions as a branches in the sum cases
- Fill in fields on Actions / Events
- value classes
- type class pattern
- https://www.scala-lang.org
- https://www.scala-exercises.org
- Event Storming - Wikipedia
- Scala 2 Type Classes 101: Introduction - by alvin alexander
- Propositions as Types - Strange Loop Conference
Mocks are heavily used in some languages and in certain situations are useful. However they may not be appropriate for a Functional Scala Application. We'll discuss how they negatively affect the code design and some of alternatives which result in code which is easier to test and verify.
- modules/mocks-in-scala
- modules/fakes-in-scala