#Functions ##Functions should be small Four to six lines long
- "A long function is where the classes go to hide"
##Functions should do only one thing
- "if a function manipulate more than one level of abstraction, it's clearly doing more than one thing"
- "in order for a function to do one thing, it must not cross level of abstraction"
###Extract 'till you drop! But level of abstractions are fuzzy... is there a deterministic way to decide if a function is doing more than one thing? Extract 'till you drop!
"If you can extract one function from another, this means that the original function was doing more than one thing by definition"
"I look at braces as an opportunity to extract!"