[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