Как стать автором
Обновить

Комментарии 38

НЛО прилетело и опубликовало эту надпись здесь
Можно начинать гадать на кофейной гуще с выходом первого альфа-кандидата. Пока еще вообще что-то говорить рано.
Можно начинать гадать на кофейной гуще с выходом первого альфа-кандидата. Более конкретно пока рано говорить.
Возьму свои слова назад, и процетирую сегодняшнее сообщение DHH:
— Rails 3 beta is almost ready for public testing. We're just hammering out the last bugs in Bundler. Stay tuned.
3.0b будет на неделе, а вот когда будет релиз, а главное — 3.1 — неизвестно.
они читают мои мысли :)
НЛО прилетело и опубликовало эту надпись здесь
Да. Пример отсюда? :)

Суть «ленивости» в том, что можно сколько угодно строить цепочку вызовов (очень грубо говоря — стоить SQL запрос), и даже после последнего вызова не будет выполнен непосредственно запрос к БД.

Запорос к БД для указанной цепочки можно выполнить обратившись к переменной new_users как к коллекции записей, которая ожидается от БД.
НЛО прилетело и опубликовало эту надпись здесь
Еще победить медленные шаблоны и рельсы можно будет сравнивать с джангой.

Это не святая война, это блин объективное мнение :-Р
Не обязательно использовать Erb. Можно же использовать Erubis, к примеру.
Скорость компиляции значения не имеет.
НЛО прилетело и опубликовало эту надпись здесь
С приходом Ruby 1.9.1 в рельсы (а это будет реккомендованой версией для Rails 3) ситуация со скоростью интерпретации значительно улучшится. Прибавте к этому всевозможные правки и оптимизации, которые они сейчас проводят (судя по отзывам ребят из Ruby noname podcast — Rails 3 уже быстрее в ~1.5 раза) — вот вам и победа на «медленными шаблонами».
Все это хорошо для хеллоу ворлдов подходит… которые и без того было легко делать.
А изменится ли что-то для нетривиальных запросов?
Если вы знакомы с реляционной алгеброй или хотя бы английским языком — предлагаю почитать вот эту статью
1) я думаю connection.execution(«сложный запрос») они оставят — без него иногда никак

2) если создавать веб-сайт, ориентируясь на сложные нагрузки, то задумываешься о том, чтобы использовать mongoDB, amazonDB, simpleDB, может быть и не сейчас, но чтобы код был готов к этому и легко портировался и зная, что там не особо разыграешься с SQL, то стараешься писать простые запросы из одной таблицы… и такие вещи самое то

3) в одном моем проекте (переписанным на Rails сначала как калька с PHP) запросы начали постепенно приходит к виду ObjectName.active.most_popular, где active, most_popular это соответствующие name_scope
НЛО прилетело и опубликовало эту надпись здесь
Это современный стиль, чем то похоже на LINQ.
ага, в статье мутотень, а вы написали самый понятный, компактный и _не_мутотень_style в мире код:)
а before_save и прочие есть и в рельсах
НЛО прилетело и опубликовало эту надпись здесь
В Rails 3.0 специально исключают такой подход (см. начало статьи, там где говорится о хеше options) в пользу адаптации реляционной алгебры, где составление запросов происходит несравнимо гибче.
чуть ниже ответил, первый раз в жизни промахнулся веткой o_O
_гагляднее некуда
соглашусь с Огневским, что этот синтаксис уступает стандартному рельсовому запросу
$model = Item::model->findAll(array('limit'=>10, 'order'=>'id DESC', 'condition '=> 'date > 01-02-2010'));
vs
model = Item.find(:all, :limit => 10, :order => 'id DESC', :conditions => 'date > 01-02-2010')
речь лишь о паре лишних символов, но тем не менее камень в сторону _гаглядности

далее, ребята из кортим пошли ровно тем же путем, что вы демонстрировали ниже в своем многострочном запросе. Они тоже своеобразно разбили запрос. Только он вызывается цепочкой, а не объявлением параметров поиска с новой строки. И это бесспорно умнее и просто красивее.

model = Item.limit(10).order('id DESC').conditions('date > 01-02-2010').all

Обратите внимание, что буковок стало еще меньше, а читабельность повысилась.
В принципе, эти вот «последствия объектности» многим (и мне в том числе) очень нравятся.
Будет больше похоже на какое-нибудь array.map(&:id).map(&:name).capitalize.to_sym ;)
ну если вам 10 строк вместо одной писать легче…

в рельсах новых всё достаточно красиво сделано.
А ваш вариант + указанный выше уже реализован в Propel 1.5
а это
$cr->condition = 'date > :pdate';
$cr->params = array(':pdate'=>'01-02-2010');

что за зверь?
НЛО прилетело и опубликовало эту надпись здесь
я догадался уже, но уж больно синтаксис страшный
ну вот так, например, нагляднее:
items = Item.find(:all, :limit => 10, :order => 'id DESC', :conditions => 'date > 01-22-2010')

без всяких этих $, кавычек у свойств и прочего непотребства:)
Ага, PHP страшный, но зато шустрый относительно и память не жрет.
Британские ученыеTM подсказывают мне, что не такой уж он уже и шустрый;)
PHP не так страшен, как на нем «кодют».
со временем его приведут в порядок.
проблема в его популярности на фоне криворукости разработчиков.
Ну не знаю, мне банально надоедает смотреть на все эти str_*() и array_*(), почему нельзя сделать ООП, хотя бы в части того, чтобы у строк/массивов были методы? Уродливый синтаксис, правда.
ну они движутся в этом направлении :)
НЛО прилетело и опубликовало эту надпись здесь
Ага, каждый сейчас будет выпускать свою версию php. Какой-то вы недальновидный develop.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории