если посмотреть по ссылке выступление DHH, он рассказывает, что главным нововведением для этой фичи стали пустые папки. т.е. sprockets, scss, coffee — это всё конечно хорошо, и отключается. а главное — это то, что генератор теперь генерирует ресурсы систематизированно.
у compass довольно узкая направленность, я думаю, что для ближайших версий на SCSS они ограничатся.
в 3.2 намечается сильное упрощение стека middleware, ускорение, а так же вроде бы это
haml не отвечает его эстетическим пристрастиям. Он понимает, какую роль haml играет для Rails, но не нравится он ему, и все тут) По той же причине он выбрал SCSS, а не SASS. Подробнее тут (англ.).
я читал и ещё про одну логику (правда которая, может быть, была самодеятельностью фанатов): CoffeeScript и SCSS позволили систематизировать и абстрагировать элементы приложения. Haml же ничего не абстрогирует (только выглядит лучше), а систематизация и так была в html.erb
Насколько я знаю CoffeeScript ничего не систематизирует и не абстрагирует. Разбивкой на сущности занимается генератор рельсов, а объединением — Sprockets. Точно так же мог бы и работать Javascript.
В Compass есть средства для систематизации — инклюды, партиалы, но пока нативно они не поддерживаются.
В любом случае, упорядочиванием сейчас преимущественно занимается Sprockets.
P.S. Если бы фреймворк назывался Python on Rails, будьте уверенны Haml и Sass были бы там уже по умолчанию :)
Лаконичность весьма условная. С помощью zen-coding можно писать так же быстро, как и через haml. Но обучать верстальщиков Haml'у это явно преступление против человечества )
В нормальном редакторе (например, в настроенном vim) никакой проблемы в отступах нет. Они сами формируются редактором, равно как на лет проверяются ошибки.
Хотя на вкус и цвет, но мне лично HAML очень понравился.
на волне недавнего еле закончившегося холивора «табы vs пробелы» все стали слишком критично понимать эту фразу.
единый корпоративный стиль оформления кода тоже имеет свои пределы, и когда ваши шаблоны из-за этого корпоративного стиля превращаются в простыню из пирамидок, лучше пожертвовать единообразием для повышения читабельности.
Не надо переводить все подряд. Думал что карта сущностей — это что-то новое, а оказалось тот же identity map. Людям всеравно потом придется работать с англ. терминами.
Это извечный спор, какие понятия переводить, а какие нет.
Есть адепты принципа «переводим ВСЕ». Они переводят слово фреймворк как каркас и бинарный лог называют двоичным журналом. Есть люди, которые наоборот, оставляют все термины непереведенными. В итоге их текст состоит наполовину из русских и наполовину из английских слов — тоже выглядит странновато.
В основном стараются держаться какой-то золотой середины. Проблема в том, что понятие середины у каждого свое, кому-то идентити мап, кому-то карта сущностей. Думаю, не стоит к этому цепляться, поскольку всем все равно никогда не угодить.
Тут такого спора нету. Человек вышедший за пределы этой статьи ничего не сможет найти. Информации по «картам сущностей» в рельсах кроме как в этой статье нигде нету. Чтобы переводить термины, нужно чтобы была актуальная информация на русском, а ее нету. В 95%, если не больше, я пользуюсь только источниками на англ. языке, так как альтернатив попросту нету.
identity map -> тождественное отображение вводит плохо говорящих по-английски в когнитивный диссонанс. карта сущностей и по смыслу подходит, и понятно сразу о чём речь.
3.2 — хороший торт, 3.1 вроде как экспериментальный, мост между 3.0 и 3.2. В 3.2. будет окончательно отменены некоторые штуки из 2.х ветки. Или я что-то путаю?
Арр, буду переписывать скрипты с Prototype на jQuery :)
А руководство по переходу 3.0 -> 3.1 планируется?
Одно неудобство заметил: можно ли будет конвертировать уже существующие пароли в has_secure_password?
> буду переписывать скрипты с Prototype на jQuery
это совсем не обязательно. чтобы заменить jquery на prototype в 3.1 надо будет всего лишь сделать
# gem 'jquery-rails'
gem 'prototype-rails'
;)
по поводу рукаоводства — насколько я понял, вся документация ещё готовится, да и интернеты будут переполнены самодельными гайдами, как это было с 2.3 -> 3.0
существующие пароли, если я вас правильно понял, можно будет конвертировать только если вы их храните как plain text. если вы их тоже зашифровали, то переопределить алгоритм шифрования (ну или соль-перец) будет нельзя, там свой через BCrypt и он hard-coded.
Это необязательно, если все, что использовалось — стандартный UJS, а что если реально много кода на самом Prototype? Хотя дефолность не мешает использовать Prototype и дальше.
Вот HTTP-Стриминг это действительно killer feature. Интересно в других фреймворках есть что-то похожее?
Вообще радует, что при выпуске новой версии Rails разработчики уделяют столько внимания вопросам производительности.
просто rake прописывается в ваше системное окружение при установке, поэтому просто так её не снесёшь.
rails и rake пишут две разные команды, поэтому такое вполне могло случиться.
щас на самом деле все держат руку на пульсе, патч обещали в кратчайшие сроки.
Кстати, кто подскажет. Я перевел 3.0 проект на 3.1 бету, сейчас до rc апгрейдился.
Но когда я пишу скрипты в assets/javascripts/*.coffee.js они с завидным постоянством не обновляются.
Файл application.js, который отдает rails сервер и не думает обновлятся ни под каким предлогом.
на самом деле и читабельнее — вопрос спорный. для меня меньше слов — лучше читабельность. а когда assert превращается в should_be_true, то это уже читабельнее может действительно быть только для заказчика. а лично у меня в практике заказчик ни разу тесты не читал.
Теперь поддерживать безопасность приложений проще, чем никогда. — ась?
«ever» это не никогда, это «когда бы то ни было». Впрочем, так писать в переводе тоже не стоит.
быстрое гугление мне показало, что Prepared statements сейчас поддерживает только Zend и Yii в вроде последней (1.1.7) версии.
Иногда ещё бывает, что параметризацию запросов или их подготовку на стороне клиента называют тем же термином.
насчёт propel не знаю, но по doctrine только что читал форум-тред, о том, что логгер БД показывал, что на самом деле никакого PS не происходит.
алсо, был где-то гайд как включить PS в адаптере MySQL.
Однако отсутствие в рельсах PS было аргументировано: AR в 3.0 устроена так, что вы можете изменив 3 строки в конфиге перейти к примеру MySQL -> PostgreSQL -> Oracle -> MongoDB -> что угодно ещё и в любой последовательности. Введение таких DB-specific вещей убьёт абстракцию.
> Пойду зарепортаю багу, что ли.
Вы только перепроверьте, что оно до сих пор так, вдруг я не те форумы читаю :) СУБД вроде MySQL.
> Ну так не убило же.
Просто они только в 3.0 сменили архитектуру, сделав все railties (AR, ActiveSupport, ActionController и т.п.) модульными и независимыми и добавив достаточно абстракций, чтобы это стало возможно. Видимо, им нужно было время, чтобы допилить. Во всяком случае я знаю немногих людей, которые садятся за Rails ради вертикальной производительности :)
Rails 3.1: Release Candidate