I've been reading the Rails documentation on their ActiveRecord framework and came across this quote of their philosphy for it:
Active Record attempts to provide a coherent wrapping for the inconvenience that is object-relational mapping. The prime directive for this mapping has been to minimize the amount of code needed to built a real-world domain model. This is made possible by relying on a number of conventions that make it easy for Active Record to infer complex relations and structures from a minimal amount of explicit direction.
Convention over Configuration:
Lots of reflection and run-time extension
Magic is not inherently a bad word
Admit the Database:
Lets you drop down to SQL for odd cases and performance
Doesn‘t attempt to duplicate or replace data definitions
I love the convention over configuration! Right on!