~/talk

Creating intuitive APIs

Talkat Meeting C++ 2015 · 2015-12-04..12-05· [design-collaboration]
slides:none on file

Practical rules and concrete fixes drive decisions: rename ambiguous find to indexOf with CaseSensitivity enum so return types and intent match, replace long QSlider constructors with a property-based API for QSlider and defaults, remove unused virtuals and favor static polymorphism, protect binary stability with a pimpl private d-pointer, stop auto-detecting text formats, prefer enums over Booleans, avoid implicit conversions, and operate with no exceptions, heavy use of assertions while keeping source/binary compatibility for hundreds of thousands of users.

AI-written summary · about

  1. 0:00Start
  2. 3:40For your project
  3. 10:32Easy to learn and use
  4. 11:49Leads to readable and maintainable code
  5. 14:54Minimal but complete
  6. 16:05Easy to extend and evolve
  7. 16:41Know your requirements
  8. 17:36API Specification
  9. 20:15Review the API
  10. 21:14Coding
  11. 22:06Prepare for extensions
  12. 25:05Choosing good names
  13. 26:44Make names specific
  14. 27:56Make names unambigous
  15. 29:17Avoid abbreviations
  16. 30:58Choose good default behavior
  17. 32:33Avoid magic
  18. 35:28Pay attention to edge cases
  19. 37:26Value based classes
  20. 39:18Polymorphic classes
  21. 43:02Static polymorphism
  22. 45:05Composition instead of inheritance
  23. 46:09Property based API
  24. 47:46Signals and slots
  25. 48:35Hide your implementation
  26. 50:34Method design
  27. 51:20Naming Arguments
  28. 56:24Property getters and setters
  29. 58:54Documentation
~/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.