# Abstract, Extract ### How abstractions and libraries can help you untie that big ball of twine that is your sorry excuse of a source code * * \* Come up with a better title before Wednesday
# Daniel Saidi ### iOS Lead @ BookBeat
# Windows Mobile 2005 ### Before it was cool
# Team Yellow
# So why am I here?
# BookBeat ### A startup story
## Competitors * Audible * Storytel * Nextory * ...and many others
# Keeping it together ### How do you keep your code base sane?
# But what if you fail? ### How do you know if your code went bad?
# Code-smell! ### (it actually does smell)
# Raise of hands ### Favorite code-smells?
# Duplicated code ### e.g. validation, formatting, business logic
# Long functions ### Hard to test, cyclomatic complexity
# Complicated code ### If your code needs comments, you know
# Large classes ### Does a lot of stuff...that it shouldn't
# Spaghetti code ### No red thread, no obvious design
# Hard coupling ### A depends on B which depends on...
# Bad habits ### Unit tests disabled, no version control etc.
# So, BookBeat? ### How did the code-base look after a year?
# Let's take a look
# Wrapping up
# Thank you! Daniel Saidi ยท [@danielsaidi](https://twitter.com/danielsaidi)