Ruby on Rails - преимущества и недостатки
Заранее спасибо! Ваше мнение очень важно для меня, поскольку сам выбираю между многих зол для большого проекта.
Ruby относительно молодой язык, который на данный момент лишён (кажись))) поддержки крупных компаний. Сам Rails писался одним человек. Собсно из-за этих рельс руби и вылез. Я сам все хочу стресс-тестами для неё занятся, но народ утверждает, что это "красиво, но медленно".
Некоторые моменты:
1)Совпадение структуры проектов которые предлагает RoR с моим личным движком на php/mysql. Это делает для меня переход "на новые рельсы" простым и легким.
2)На RoR прийдется писать приложения в ОО стиле. Он расчитан на это и процедурный вариант обернется страшным гемороем. Лично для меня с ООП проблем нет, но для кого-то это может стать проблемой.
3)При соблюдении некоторых элементрных правил становится возможной автоматическая генерация модели (MVC) на основании структуры базы данных. Например, если в БД будет таблица products, то для создания класса работающего с этой таблицей в командной строке пишем:
Код:
ruby generate scaffold Product Admin
После выполнения этой строки будет создан класс модели Product привязанный к таблице products. Кроме этого будет создан класс Admin контроллера. Этот набор классов будет иметь возможность совершать базовые операции с данными в таблице: чтение, вставка, изменение и удаление.
Разумеется все эти методы можно будет переопределить в случае необходимости.
4)Кроме генерации отдельных классов RoR позволяет легко их соединять. Например отразить в модели тот факт что поле user_id в таблице orders связано с полем id в таблице users можно с помощью двух строчек кода.
5)Реализована поддержка трех отдельных баз данных для приложения: test, development и production.
6)Автоматическая генерация шаблонов тестов для приложения.
Из литературы могу посоветовать почитать Agile Web Development with Rails. Язык английский.
2shine Стресс тесты проводил? Какую проект нагрузку выдерживает?
по поводу производительности и скорости гляньте
Небольшая добавка к описанию: генерация MVC гибкая. То есть если после генерации вы добавляете поле в таблицу, то в классе соответствующем этой таблице добавляется член.
Также в RoR есть встроеная система шаблонов. Даже две:
1)Независимые компоненты. То есть полность не зависящие от остального кода куски которые сами выполняют запросы к базе и отображают данные.
2)Smarty-подобные шаблоны которые отображают данные из главного скрипта генерящего страницу.
http://alexlebedev.com/blog/we-are-on-rails/
чувак делится личными впечатлениями по поводу этого фреймворка.
чувак делится личными впечатлениями по поводу этого фреймворка.
Цитата: shaelf
Ruby относительно молодой язык, который на данный момент лишён (кажись))) поддержки крупных компаний.
Вовсе не лишен. Ruby поддерживается компанией Sun Mycrosystems.
Его также поддерживает среда NetBeans. Вот сцылочки:
http://www.sun.com/aboutsun/pr/2007-03/sunflash.20070305.2.xml
http://www.infoq.com/news/JRuby-Goes-To-Sun
http://www.cbronline.com/article_news.asp?guid=14F8C317-4CB3-4F0A-84C1-0D51B752D72E
RoR - хорошая, и, возможно перспективная платформа для разработки веб-приложений малой и средней сложности. На данный момент система достаточно сырая для чего-то серьезного и очень перспективного. Будущее RoR почти определено (за них взялся Sun), но это еще не показатель того, что скоро система станет мощной, универсальной, сможет конкурировать по количеству пакетов совместимости с гигантами web-developing рынка вроде Perl/PHP/Java.
Я бы рекомендовал всем попробовать поковырять Ruby on Rails, найти в нем что-то свое и сделать свои выводы. Но попробовать. А потом уже решать, в каких проектах и как использовать.
Критикуйте, дополняйте выводы:)
Предлагаю обобщить в будущем все подобные данные, чтобы ссылать туда тех, кто приходит с вопросом: "а на чем мне сайтец писать?"
http://symfony-project.com) и следить за PHPonRails (http://phponrails.ru/)
Всем любителям RoR могу посоветовать посмотреть в сторону симфонии (