[Moscow.pm] конструкторе sql запросов

ksvs ksvs1996 на ymail.com
Вт Дек 17 23:37:49 PST 2013


Зачем @WHERE2? Сразу make_sub_select:

my ($sub_select, @sub_params) = make_sub_select(...);
push @where, "foo IN ($sub_select)"; push @params, 
@sub_params;



On Wednesday, 18 December 2013, 9:18, Yury Pats <yu.pats на gmail.com> wrote:
 
Привет. Нормально все выглядит.

ИМХО 
* Прямая нотация if вместо do
* уход от unless
* при обратной нотации писать if с новой строки с отступом

улучшили бы читаемость. Но получилась бы та же лапша, только вертикальная =)



2013/12/18 Nick Knutov <mail на knutov.com>

У меня в коде в некоторых функциях, в зависимости от входных параметров,
>конструируются разные sql запросы. Пример:
>
>my $sql = posts_sql_view();
>$sql .= ' WHERE ' if $type or $id or $main;
>do { $sql .= ' ty.id=? '; push @params, $type;} if $type;
>do { $sql .= ' AND p.id=? LIMIT 1'; push @params, $id } if $id;
>$sql .= ' ORDER BY id DESC ' unless $id;
>do { $sql .= ' LIMIT ? ' ; push @params, $limit } if $limit and not $id;
>
>Мне не нравится как это визуально выглядит. Как бы вы это переписали,
>чтобы было понятнее и читабельнее?
>
>ps: в некоторых других случаях можно было бы использовать && вместо
>do{}, но не тут.
>
>pps: ORM предлагать и обсуждать не надо. Как минимум потому, что запросы
>сложные и сложность/стоимость проверки того, что генерирует ORM
>многократно выше любого профита от ORM в данной ситуации.
>
>--
>Best Regards,
>Nick Knutov
>http://knutov.com
>ICQ: 272873706
>Voice: +7-904-84-23-130
>--
>Moscow.pm mailing list
>moscow-pm на pm.org | http://moscow.pm.org
>


-- 
WBR, Yury Pats
skype: yuripats
cellular: +375 (29) 5870723 

-- 
Moscow.pm mailing list
moscow-pm на pm.org | http://moscow.pm.org
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20131218/e77b2603/attachment-0001.html>


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