~/talk

Refactoring a Net Database Connection into a Monadic Interface

Talkat LambdaConf 2019 · 2019-06-05..06-07· [databases]
slides:none on file

Refactors a legacy imperative .NET DB layer into a composable monadic interface, publishing the code at DBMonad and targeting both SQL and SAP HANA connections. Implements a state-like state monad called Queries with map/flatMap/selectMany, file-backed SQL selection, optional/error layering, and run/run-with-transaction execution primitives. Replaces repetitive open/close/try-catch boilerplate, makes queries composable and lazily evaluated, and ships to production successfully while reducing code and simplifying testing even though full unit tests were deferred.

AI-written summary · about

  1. 0:00Introduction
  2. 3:30Code Overview
  3. 5:15Static Classes
  4. 10:30DB State
  5. 13:00File
  6. 14:00Functions
  7. 15:00Queries
  8. 16:30Returns
  9. 17:35Map
  10. 18:20Quiz
  11. 19:40Bind
  12. 21:30Catch
  13. 22:10Extension methods
  14. 22:50Workflow
  15. 23:45Run Command
  16. 29:00Variables
  17. 29:40Deform
  18. 30:40C Short Local Method
  19. 31:50C Optional Method
~/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.