Simplicity is a Feature
Cory Benfield
@Lukasaoz
https://speakerdeck.com/lukasa/simplicity-is-a-feature
The big take away:
Simplicity is about defaults
Build your software in library
Example: multipart http upload
3 levels
- low level
- features
- simplicity
low level - eg httplib
- don’t try to “help” - give user complete control
- to the point of letting people do “invalid” stuff
feature level - eg urllib3
- users no semantics of the problem, but don’t need to understand every detail
- still have quite a bit of control
- only support valid cases
simplicity level - eg requests
- this should be the default if someone searches how to do something
- does not have to support all valid use cases - 80% is fine, to keep it simple
- lots of defaults, to make it easy for users
- “do the right thing”
- allow user to drop to level 2 - requests has an object giving access to urllib3
- can do multipart file load in one logical line!
80%
- understand the domain
- see what most users are doing
- solve the problems for most people
- you can’t make everyone happy all of the time, but you can make some people ecstatic!
requests like libraries
- flask is the requests of web serving