~/talk

Real-World Functional Scala

Talkat Lambda World 2016 · 2016-09-30..10-01· [scala]
github:cb372
slides:none on file

Amigo is a small Play + Scala AMi bakery that generates Ansible playbooks, writes Packer configs, spawns Packer, parses its stdout and records status in DynamoDB; the code is event‑driven, open source and has few tests. Uses Scanamo, Enumeratum and a custom Automagic macro to cut boilerplate, models domain with ADTs and value classes, applies monoids for foldMap and experiments with ReaderT/Kleisli (Cats) to defer effects — concludes Reader helps wiring but is awkward here; free monads proposed for full description/execution separation.

AI-written summary · about

  1. 0:00Introduction
  2. 0:29My journey with Scala
  3. 2:50Amigo
  4. 4:50Demo
  5. 6:42Package Structure
  6. 7:22What Went Well
  7. 7:53ObjectOriented Design
  8. 9:49Data Types
  9. 11:13Static Types
  10. 13:35Errors
  11. 15:32Monoids
  12. 17:48Behavior
  13. 20:19Object vs Classes
  14. 21:36Amigo Example
  15. 22:19Anti Patent
  16. 23:21Mocking dependencies
  17. 23:48Classes as dependencies
  18. 24:31Passing functions in as parameters
  19. 25:19Resource management
  20. 26:00Currying
  21. 27:57Traits
  22. 28:29decorators
  23. 29:08pick the cake pattern
  24. 30:02minimizing boilerplate
  25. 30:46ScamMo
  26. 31:15AutoMagic
  27. 32:00enumeratem
  28. 32:33Improving the code
  29. 34:03Separating impure from pure
  30. 35:06Reader monad
  31. 35:49GetItem
  32. 36:17Combining Functions
  33. 38:22Reader T
  34. 39:32Amigo Code
  35. 41:09Functions as Arguments
  36. 41:49Hiding Wiring
  37. 42:39Context Objects
  38. 42:58Reader Objects
  39. 43:33Comprehension
  40. 44:32Cheatsheet
  41. 44:50Testing
  42. 45:32Conclusion
  43. 46:46Summary
~/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.