Hand Coded Applications with SQLAlchemy
- Audience level:
- Best Practices/Patterns
March 10th 11:45 a.m. – 12:30 p.m.
SQLAlchemy is the object relational mapper and database toolkit for Python, first introduced in 2005. In this talk I'll describe why SQLAlchemy has always been called a "toolkit", detailing the software construction mindset for which SQLAlchemy was designed to be used with - what I am currently referring to as the "Hand Coded" approach.
- Hand Coded Apps
- Isn't this term obvious?
- Examples where "hand coded" isn't obvious or even present
- Brief definition of "Hand coded"
- Make decisions
- Decide conventions
- Implement decisions, automate conventions using high-quality,
fine grained tools
- Myths of programming tools
- What common practices aren't so "hand-coded"?
- Example - the "auth" plugin
- Demystifying building a simple "auth" system specific to our needs
- Advantages to specific, in house libraries versus generic, off the shelf
- Sum up "hand coded"
- Why do we use databases?
- Why do we use relational databases?
- When should we not use relational databases?
- how do we use relational databases with application code?
- what do we mean by "database abstraction" ?
- problems with "abstraction == hiding"
- object relational impedance mismatch
- SQLAlchemy and the hand coded approach
- A vanilla SQLAlchemy model
- Why is it verbose ?
- Automating conventions
- building a base
- reducing verbosity
- define standard patterns/interactions
- build the ORM you want
- Exposing the relational model
- Simple queries, non-controversial
- A not-so-simple query
- SQL programmer approach
- SQLAlchemy approach
- "Leaky abstraction"