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