How to please everyone
or
random thoughts about library design
Slide 3
Slide 3 text
What we will talk about
Slide 4
Slide 4 text
What we will talk about
• Design your library API
Slide 5
Slide 5 text
What we will talk about
• Design your library API
• Make it clear, effective, predictable and
transparent
Slide 6
Slide 6 text
What we will talk about
• Design your library API
• Make it clear, effective, predictable and
transparent
• Choose between alternative implementations
Slide 7
Slide 7 text
What we will talk about
• Design your library API
• Make it clear, effective, predictable and
transparent
• Choose between alternative implementations
• Assess your choices
Slide 8
Slide 8 text
About me
Slide 9
Slide 9 text
About me
Slide 10
Slide 10 text
About me
Slide 11
Slide 11 text
About me
Slide 12
Slide 12 text
Disclaimer
This talk is based on personal experience
Slide 13
Slide 13 text
Your users
Slide 14
Slide 14 text
Your users
•Regular users
Slide 15
Slide 15 text
Your users
•Regular users
•Advanced users
Slide 16
Slide 16 text
Your users
•Regular users
•Advanced users
•Experts
Slide 17
Slide 17 text
Your users
•Regular users
•Advanced users
•Experts
Slide 18
Slide 18 text
Your users
•Regular users
•Advanced users
•Experts
Slide 19
Slide 19 text
Your users
•Regular users
•Advanced users
•Experts
Slide 20
Slide 20 text
Regular users
Slide 21
Slide 21 text
Regular users
Slide 22
Slide 22 text
Regular users
Slide 23
Slide 23 text
Regular users
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
Example
Slide 27
Slide 27 text
Example
Slide 28
Slide 28 text
Example
github.com/storozhukBM/verifier
Slide 29
Slide 29 text
Example
github.com/storozhukBM/verifier
Slide 30
Slide 30 text
copy&paste friendliness
• Meaningful method names
Slide 31
Slide 31 text
copy&paste friendliness
• Meaningful method names
• Zero configuration