[Moscow.pm] Продолжение размышлений на тему ORM

Ivan Petrov i.petro.77.00 на gmail.com
Вт Ноя 8 12:17:40 PST 2011


> 1. Не знаю, как насчет "там", но в письме отсутствовало ;-)
> 2. Рано или поздно вы захотите уметь менять имена столбцов и таблиц в
> шаблоне, вот тут появится quote_field и понесется ;-)

дык оно уже есть, там всего две изначально встроенных функции quote
(<%= %>) и immediate (<%== %>). Последняя как раз делает прямую
подстановку.

Нужна бывает для подстановок внутрь ORDER BY например. Вероятно надо
сделать quote_identifier. Но наверно в виде хелпера. ибо тут связь с
БД шаблона нужна (пока ее нет, пока quote заменяет на  ? + кладет в
bind-массив).

Но эта проблема она есть и при ручном составлении строки-запроса.
ровно такая же.

кстати есть конструкторы HTML. когда на все теги написаны методы и
делаешь инсерты тегов в строящийся HTML. популярности особой у них
нет. а почему? потому что нет наглядности.

когда ты открываешь шаблон HTML с вставками на TT или Perl, ты все
равно видишь общий HTML. а в случае конструктора общей картины перед
глазами нет. и отлаживать такое человеку сложнее. поэтому популярности
не набрало (хотя проекты есть).

Так и тут. Когда пишешь 

my $sql = sprintf q{
    SELECT
        %s
    FROM
        %s
}, $field, $table;

то наглядности уже нет. Особо если $field и $table вычисляются.
а уж тем более когда пишешь

$constrictor->join(...)
$constrictor->where(...)
$constrictor->select(...)
$constrictor->join(...)
$constrictor->where(...)
$constrictor->select(...)


>> а к взаимозаменяемости не стремились. то есть даже наоборот. хотели от
>> нее уйти. ибо НАДО использовать фичи БД :)
> Тестировать плохо становится (а так, да... редко боевая база на другой
> движок переезжает)

переезд боевой БД на другой движок - отдельный проект по полному
рефакторингу и ретестингу.
это нечто такое чего  никогда не видел


Подробная информация о списке рассылки Moscow-pm