~/talk

Developing Better C++ Code by Isolating Decisions

Talkat C++Now 2024 · 2024-04-29..05-03· [software-architecture]
links:none on file
slides:none on file

Claims that Decision-Making Isolation—pulling branching and algorithms into pure free functions or tiny classes, injecting IO and wiring separately—makes C++ code more readable, extensible, and testable. Implementation follows C++ Core Guidelines, uses dependency injection (including supplying a clock function instead of calling steady_clock), and exercises GTest for decision logic; the team at Plexus is trialing it on components (not yet a full project rollout). Outcome: fewer, higher-value tests, less coupling and brittle mocks after several redesign cycles (four to six iterations).

AI-written summary · about

  1. 0:00Introduction and vision
  2. 2:06Personal journey
  3. 4:14Testing as a solution
  4. 6:28Rethinking unit testing
  5. 8:33Defining quality code
  6. 10:58Software design principles
  7. 13:28The challenge of SOLID
  8. 18:20Arbitrary points in design
  9. 21:08Decision-making isolation
  10. 24:05Example refactoring
  11. 25:50Types of DMI code
  12. 28:33Isolating decisions
  13. 32:27Identifying decision logic
  14. 35:33Understanding IO code
  15. 37:55Wiring components together
  16. 39:29Classes vs structs
  17. 42:28Defining invariants
  18. 46:12RAII and resource management
  19. 48:03Property invariants
  20. 49:56Class invariant example
  21. 52:04Handling data without invariants
  22. 55:04Value of free functions
  23. 59:30Component boundaries
  24. 1:03:09DMI and SOLID principles
  25. 1:05:54Unit testing strategy
  26. 1:08:23Refactored testing example
  27. 1:11:23Testing wiring and IO
  28. 1:14:15Test-driven development
  29. 1:16:43Conclusion and takeaways
  30. 1:19:22Q&A and closing remarks
~/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.