You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tt-rss/vendor/j4mie/idiorm/docs/philosophy.rst

34 lines
1.6 KiB
ReStructuredText

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

Philosophy
==========
The `Pareto Principle`_ states that *roughly 80% of the effects come
from 20% of the causes.* In software development terms, this could be
translated into something along the lines of *80% of the results come
from 20% of the complexity*. In other words, you can get pretty far by
being pretty stupid.
**Idiorm is deliberately simple**. Where other ORMs consist of dozens of
classes with complex inheritance hierarchies, Idiorm has only one class,
``ORM``, which functions as both a fluent ``SELECT`` query API and a
simple CRUD model class. If my hunch is correct, this should be quite
enough for many real-world applications. Lets face it: most of us
arent building Facebook. Were working on small-to-medium-sized
projects, where the emphasis is on simplicity and rapid development
rather than infinite flexibility and features.
You might think of **Idiorm** as a *micro-ORM*. It could, perhaps, be
“the tie to go along with `Slim`_\ s tux” (to borrow a turn of phrase
from `DocumentCloud`_). Or it could be an effective bit of spring
cleaning for one of those horrendous SQL-littered legacy PHP apps you
have to support.
**Idiorm** might also provide a good base upon which to build
higher-level, more complex database abstractions. For example, `Paris`_
is an implementation of the `Active Record pattern`_ built on top of
Idiorm.
.. _Pareto Principle: http://en.wikipedia.org/wiki/Pareto_principle
.. _Slim: http://github.com/codeguy/slim/
.. _DocumentCloud: http://github.com/documentcloud/underscore
.. _Paris: http://github.com/j4mie/paris
.. _Active Record pattern: http://martinfowler.com/eaaCatalog/activeRecord.html