~/talk

Vertical Slice Architecture

Talkat NDC Sydney 2018 · 2018-09-17..09-21· [frontend-architecture]
slides:none on file

Shifts layered apps into per-feature code where each action is a request/handler/response class, registered with MediatR, using AutoMapper projections or raw SQL/EF Core/Dapper for reads and handlers that directly call infrastructure for writes. Adds pipeline behaviors for transactions, retries and logging, uses FluentValidation for request checks, pushes complex rules into domain objects, and relies on integration tests for handlers and unit tests for domain. Results: smaller merge conflict surface and more maintainable features.

AI-written summary · about

  1. 0:00Vertical slice Architecture
  2. 2:54Traditional n-tier UI Layer
  3. 4:05Organizing by layer
  4. 5:51Areas of change
  5. 8:00Move code to single place
  6. 8:59Move service methods to classes
  7. 10:54Modeling requests
  8. 11:44Request/Response with Mediatr
  9. 13:20Registering Mediatr
  10. 13:52Commands and Queries
  11. 15:25One model in, one model out
  12. 16:23Complete encapsulation
  13. 16:58Modeling Queries
  14. 19:46Paging/Sorting/Filtering
  15. 20:13Modeling Responses
  16. 21:19Complex Response
  17. 23:32Command/Query Duality
  18. 24:39Modeling Commands
  19. 24:49Simple Commands public class Edit
  20. 26:33Model-Bound Types
  21. 27:30Task-Based UIS
  22. 28:54Modeling Command Responses
  23. 29:18void Response
  24. 30:03Success/Fail
  25. 30:33Creation
  26. 31:32Complete Response
  27. 35:16SQL Projections
  28. 35:52Encapsulated Logic
  29. 37:13Duplicate Logic
  30. 38:16Command Handlers
  31. 38:43Procedural Beginnings
  32. 38:57DI with no abstractions
  33. 41:19Code Smells
  34. 42:20Behavioral Smells
  35. 43:22Push Behavior Down
  36. 44:01Encapsulated Domain
  37. 45:15validation Scopes
  38. 46:17Request validation
  39. 46:57Domain validation
  40. 47:26Representations
  41. 47:39Controllers as routes
  42. 48:14Razor Pages
  43. 51:04Pipeline Behavior (Decorator)
  44. 51:24Stackable Decorators
  45. 51:44Think: Action Filters
  46. 52:12Transactions
  47. 53:00Unit of work
  48. 53:23Concurrency and Retries
  49. 54:10Logging
  50. 54:57Registration
  51. 57:07Setting Up Data
  52. 57:25Sending Requests
  53. 58:20Testing queries through result
  54. 59:00Setup through the front door
  55. 59:25Setup data directly when needed
  56. 59:41Test commands with roundtrips
~/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.