Рубин на рельсах - Ruby on Rails

Рубин на рельсах
Ruby On Rails Logo.svg
Оригинальный автор (ы)Дэвид Хайнемайер Ханссон
изначальный выпускАвгуст 2004 г.; 16 лет назад (2004-08)[1]
Стабильный выпуск6.0.3.4 (7 октября 2020 г.; 57 дней назад (2020-10-07)[2]) [±]
РепозиторийРепозиторий Rails
Написано вРубин
Размер57.8 МБ[3]
ТипФреймворк веб-приложений
ЛицензияЛицензия MIT
Интернет сайтРубин на рельсах.org

Рубин на рельсах, или же Рельсы, это на стороне сервера каркас веб-приложений написано в Рубин под Лицензия MIT. Rails - это модель – представление – контроллер (MVC), предоставляя структуры по умолчанию для база данных, а веб-сервис, и веб-страница. Он поощряет и облегчает использование веб-стандарты Такие как JSON или же XML для передачи данных и HTML, CSS и JavaScript для взаимодействия с пользователем. Помимо MVC, Rails делает упор на использование других хорошо известных программная инженерия узоры и парадигмы, в том числе соглашение важнее конфигурации (CoC), не повторяйся (СУХОЙ), а активный шаблон записи.[4]

Появление Ruby on Rails в 2005 году сильно повлияло на разработку веб-приложений благодаря инновационным функциям, таким как бесшовная база данных. стол творения миграции, и строительные леса просмотров для быстрой разработки приложений. Влияние Ruby on Rails на другие веб-фреймворки остается очевидным и сегодня, многие фреймворки на других языках заимствуют его идеи, включая Джанго в Python, Катализатор в Perl, Laravel и CakePHP в PHP, Грааль в Groovy, Феникс в Эликсир, Играть в в Scala, и Sails.js в Node.js.

История

Дэвид Хайнемайер Ханссон извлек Ruby on Rails из своей работы над инструментом управления проектами Базовый лагерь на веб приложение компания также называется Базовый лагерь (37сигналов на тот момент).[5] Ханссон впервые выпустил Rails с открытым исходным кодом в июле 2004 г., но не поделился совершить права на проект до февраля 2005 г.[нужна цитата ] В августе 2006 года структура достигла важной вехи, когда яблоко объявил, что будет поставлять Ruby on Rails с Mac OS X v10.5 «Леопард»,[6] который был выпущен в октябре 2007 года.

Версия 2.3 Rails была выпущена 15 марта 2009 г., и в ней были внесены значительные изменения в шаблоны, движки и Стойка и формы вложенных моделей. Шаблоны позволяют разработчику создавать скелет приложения с настраиваемыми драгоценные камни и конфигурации. Движки дают разработчикам возможность повторно использовать части приложения с маршрутами, путями просмотра и моделями. Интерфейс веб-сервера Rack и Metal позволяют писать оптимизированные фрагменты кода, которые перемещаются вокруг Action Controller.[7]

23 декабря 2008 г. Merb был запущен еще один фреймворк веб-приложений, и Ruby on Rails объявила, что будет работать с проектом Merb, чтобы внедрить «лучшие идеи Merb» в Rails 3, положив конец «ненужному дублированию» в обоих сообществах.[8] Merb был объединен с Rails как часть выпуска Rails 3.0.[9][10]

31 августа 2011 года был выпущен Rails 3.1, включающий обратимые миграции баз данных, Asset Pipeline, Streaming, jQuery по умолчанию JavaScript библиотека и недавно представленные CoffeeScript и Sass в стек.[11]

Rails 3.2 был выпущен 20 января 2012 года с более быстрым режимом разработки и механизмом маршрутизации (также известным как Journey Engine), автоматическим объяснением запросов и ведением журнала с тегами.[12] Rails 3.2.x - последняя версия, поддерживающая Ruby 1.8.7.[13] Rails 3.2.12 поддерживает Ruby 2.0.[14]

Rails 4.0 был выпущен 25 июня 2013 года и представил Russian Doll Caching, Turbolinks, Live Streaming, а также сделал Active Resource, Active Record Observer и другие компоненты необязательными, разделив их как драгоценные камни.[15]

Rails 4.1 был выпущен 8 апреля 2014 года и представил Spring, Variants, Enums, Previews Mailer и secrets.yml.[16]

Rails 4.2 был выпущен 19 декабря 2014 года и представил Active Job, асинхронные электронные письма, Adequate Record, Web Console и внешние ключи.[17]

Rails 5.0 был выпущен 30 июня 2016 года и представил Action Cable, режим API и Turbolinks 5.[18]

Rails 5.0.0.1 был выпущен 10 августа 2016 года с эксклюзивным использованием интерфейса командной строки rails поверх Rake и поддержкой Ruby версии 2.2.2 и выше.

Rails 5.1 был выпущен 27 апреля 2017 года и представил JavaScript изменения интеграции (управление зависимостями JavaScript от NPM через Yarn, необязательная компиляция JavaScript с использованием Webpack и переписывание Rails UJS для использования ванильного JavaScript вместо зависимости от jQuery), системные тесты с использованием Капибара, зашифрованные секреты, параметризованные почтовые программы, прямые и разрешенные маршруты, а также унифицированный помощник form_with, заменяющий form_tag / form_for помощников.[19]

Rails 5.2 был выпущен 9 апреля 2018 года и представил новые функции, включая ActiveStorage, встроенное хранилище Redis Cache Store, обновленные учетные данные Rails и новый DSL, который позволяет настраивать политику безопасности контента для приложения.[20]

Rails 5.2.2 был выпущен 4 декабря 2018 года, в него были внесены многочисленные исправления ошибок и несколько улучшений логики.[21]

Rails 6.0 был выпущен 16 августа 2019 года, что сделало Webpack по умолчанию, добавление маршрутизации почтового ящика, по умолчанию онлайн-редактор форматированного текста, параллельное тестирование, поддержка нескольких баз данных, маршрутизация почтовой программы и новый автозагрузчик.[22]

История версий
ВерсияДатаПримечания
Старая версия, больше не поддерживается: 1.0[23]13 декабря 2005 г.
Старая версия, больше не поддерживается: 1.2[24]19 января 2007 г.
Старая версия, больше не поддерживается: 2.0[25]7 декабря 2007 г.
Старая версия, больше не поддерживается: 2.1[26]1 июня 2008 г.
Старая версия, больше не поддерживается: 2.2[27]21 ноября 2008 г.
Старая версия, больше не поддерживается: 2.3[28]16 марта 2009 г.
Старая версия, больше не поддерживается: 3.0[29]29 августа 2010 г.
Старая версия, больше не поддерживается: 3.1[30]31 августа 2011 г.
Старая версия, больше не поддерживается: 3.2[31]20 января 2012 г.
Старая версия, больше не поддерживается: 4.0[32]25 июня 2013 г.
Старая версия, больше не поддерживается: 4.1[16]8 апреля 2014 г.
Старая версия, больше не поддерживается: 4.2[17]19 декабря 2014 г.
Старая версия, больше не поддерживается: 5.0[18]30 июня 2016 г.
Старая версия, больше не поддерживается: 5.1[19]10 мая, 2017
Старая версия, но все еще поддерживается: 5.2[33]9 апреля 2018 г.
Текущая стабильная версия: 6.0[34]16 августа 2019 г.,
Легенда:
Старая версия
Старая версия, все еще поддерживается
Последняя версия
Последняя предварительная версия
Будущий выпуск


Технический обзор

Как и другие веб-фреймворки, Ruby on Rails использует модель – представление – контроллер (MVC) шаблон для организации программирования приложений.

В конфигурации по умолчанию модель в среде Ruby on Rails сопоставляется с таблицей в базе данных и файлом Ruby. Например, класс модели Пользователь обычно определяется в файле user.rb в каталоге app / models и связан с таблицей users в базе данных. Хотя разработчики могут игнорировать это соглашение и выбирать разные имена для своих моделей, файлов и таблиц базы данных, это не обычная практика и обычно не рекомендуется в соответствии с "конвенция над конфигурацией «философия.

А контролер - это серверный компонент Rails, который отвечает на внешние запросы от веб-сервера к приложению, определяя, какой файл представления визуализировать. Контроллер может также запросить информацию у одной или нескольких моделей и передать их представлению. Например, в системе бронирования авиакомпаний контроллеру, реализующему функцию поиска рейсов, потребуется запросить модель, представляющую отдельные рейсы, чтобы найти рейсы, соответствующие поиску, а также может потребоваться запросить модели, представляющие аэропорты и авиакомпании, для поиска связанных вторичных данных. Затем контроллер может передать некоторое подмножество полетных данных в соответствующее представление, которое будет содержать смесь статического HTML и логики, использующей полетные данные для создания HTML-документа, содержащего таблицу с одной строкой на рейс. Контроллер может предоставить одно или несколько действий. В Ruby on Rails действие обычно представляет собой базовую единицу, описывающую, как отвечать на конкретный запрос внешнего веб-браузера. Также обратите внимание, что контроллер / действие будут доступны для внешних веб-запросов, только если ему сопоставлен соответствующий маршрут. Rails рекомендует разработчикам использовать RESTful маршруты, которые включают в себя такие действия, как создание, создание, редактирование, обновление, уничтожение, отображение и индексирование. Эти сопоставления входящих запросов / маршрутов с действиями контроллера можно легко настроить в файле конфигурации routes.rb.

А Посмотреть в конфигурации Rails по умолчанию это Erb файл, который оценивается и преобразуется в HTML во время выполнения. В качестве альтернативы для представлений можно использовать многие другие системы шаблонов.

Ruby on Rails включает в себя инструменты, которые "из коробки" упрощают общие задачи разработки, такие как строительные леса который может автоматически создавать некоторые модели и представления, необходимые для базового интернет сайт.[35] Также включены WEBrick, простой веб-сервер Ruby, который распространяется вместе с Ruby, и Грабли, система сборки, распространяемая как самоцвет. Вместе с Ruby on Rails эти инструменты обеспечивают базовую среду разработки.

Ruby on Rails чаще всего подключается к Интернету не напрямую, а через некоторый интерфейс. веб сервер. Дворняга обычно предпочитали[кем? ] через WEBrick в первые дни,[нужна цитата ] но он также может работать на Lighttpd, Apache, Чероки, Гайавата, Nginx (либо как модуль - Пассажир Phusion например - или через CGI, FastCGI или же mod_ruby ), и много других. С 2008 года Passenger заменил Mongrel в качестве наиболее часто используемого веб-сервера для Ruby on Rails.[36] Ruby также изначально поддерживается IBM i.[37]

Ruby on Rails также примечателен широким использованием JavaScript библиотеки, Прототип и Script.aculo.us, для сценариев Аякс действия.[38] Ruby on Rails изначально использовал облегченный МЫЛО для веб-сервисов; позже это было заменено на RESTful веб-сервисы. Ruby on Rails 3.0 использует технику под названием Ненавязчивый JavaScript чтобы отделить функциональность (или логику) от структуры веб-страницы. jQuery полностью поддерживается в качестве замены Prototype и является библиотекой JavaScript по умолчанию в Rails 3.1, отражая переход всей отрасли к jQuery. Кроме того, CoffeeScript был представлен в Rails 3.1 как язык JavaScript по умолчанию.

Начиная с версии 2.0, Ruby on Rails предлагает как HTML, так и XML в качестве стандартных форматов вывода. Последний является средством для веб-служб RESTful.

Представлен Rails 3.1 Sass как стандарт CSS шаблоны.

По умолчанию сервер использует Встроенный Ruby в представлениях HTML с файлами с расширением html.erb. Rails поддерживает замену альтернативных языков шаблонов, таких как HAML и Усы.

Ruby on Rails 3.0 был разработан для работы с Ruby 1.8.7, Ruby 1.9.2 и JRuby 1.5.2+; более ранние версии не поддерживаются.[39]

Ruby on Rails 3.2 - последняя серия выпусков, поддерживающих Ruby 1.8.7.

Структура каркаса

Ruby on Rails разделен на несколько пакетов, а именно ActiveRecord (ан объектно-реляционное отображение система доступа к базе данных), Action Pack, Active Support и Action Mailer. До версии 2.0 Ruby on Rails также включал пакет веб-службы действий, который теперь заменен на Active Resource. Помимо стандартных пакетов, разработчики могут сделать плагины для расширения существующих пакетов. Раньше Rails поддерживал плагины в своей собственной пользовательской структуре; версия 3.2 заменяет их стандартными «драгоценными камнями» Ruby.[40]

Развертывание

Ruby on Rails часто устанавливается с помощью RubyGems, менеджер пакетов[41] который включен в текущие версии Ruby. Многие бесплатные Unix-подобные системы также поддерживают установку Ruby on Rails и его зависимостей через родные система управления пакетами.

Ruby on Rails обычно развертывается с сервером базы данных, например MySQL или же PostgreSQL и веб-сервер, например Apache запуск Пассажир Phusion модуль.

Философия и дизайн

Ruby on Rails призван подчеркнуть Соглашение важнее конфигурации (CoC), а Не повторяйся (СУХОЙ) принцип.

«Соглашение важнее конфигурации» означает, что разработчику нужно только указать нетрадиционные аспекты приложения. Например, если есть класс распродажа в модели соответствующая таблица в базе данных называется продажи по умолчанию. Только если кто-то отклоняется от этого соглашения, например, называя таблицу «проданные продукты», разработчику необходимо написать код, касающийся этих имен. Как правило, соглашения Ruby on Rails приводят к меньшему количеству кода и меньшему количеству повторений.[42]

«Не повторяйся» означает, что информация находится в одном недвусмысленном месте. Например, используя ActiveRecord модуля Rails разработчику не нужно указывать имена столбцов базы данных в определениях классов. Вместо этого Ruby on Rails может извлекать эту информацию из базы данных на основе имени класса.

«Толстые модели, тонкие контроллеры» означает, что большая часть логики приложения должна быть помещена в модель, оставляя контроллер как можно более легким.

Товарные знаки

В марте 2007 г. Дэвид Хайнемайер Ханссон подали три связанных с Ruby on Rails торговая марка приложения к USPTO. Эти приложения относятся к фразе «РУБИН НА РЕЛЬСАХ»,[43] слово "РЕЛЬСЫ",[44] и официальный логотип Rails.[45] Как следствие, летом 2007 года Ханссон отказал в разрешении Apress использовать логотип Ruby on Rails на обложке новой книги Ruby on Rails, написанной некоторыми авторитетными членами сообщества. Этот эпизод вызвал вежливый протест в сообществе Ruby on Rails.[46][47] В ответ на эту критику Ханссон ответил:

Я разрешаю использование [логотипа Rails] в рекламных целях только для продуктов, с которыми я непосредственно связан. Например, книги, в разработке которых я участвовал, или конференции, на которых я имею право голоса в исполнении. Я определенно постараюсь защитить все торговые марки Rails.[46]

Прием

Масштабируемость

Рельсы, работающие на Рубиновый интерпретатор Мацаде-факто эталонный интерпретатор для Ruby) подвергался критике за проблемы с масштабируемостью.[48] Эти критики часто упоминали различные Twitter отключений в 2007 и 2008 годах, что стимулировало частичный переход Twitter на Scala (который работает на Виртуальная машина Java ) для них система очередей и другие промежуточное ПО.[49][50] Аспекты пользовательского интерфейса сайта продолжали работать на Ruby on Rails.[51] до 2011 года, когда он был заменен из-за проблем с производительностью[52]

В 2011, Gartner Research отметил, что, несмотря на критику и сравнения с Java, многие известные потребительские веб-компании используют Ruby on Rails для создания масштабируемых веб-приложений. Некоторые из крупнейших сайтов, на которых работает Ruby on Rails, включают Airbnb, Cookpad, GitHub, Scribd, Shopify, Hulu, и Базовый лагерь.[53] По оценкам, на январь 2016 года более 1,2 миллиона веб-сайтов используют Ruby on Rails.[54][55]

Безопасность

В марте 2012 года исследователь безопасности Егор Хомаков обнаружил уязвимость «массового назначения», которая позволяла удаленно использовать определенные приложения Rails, и продемонстрировал это, не злонамеренно взломав GitHub после того, как его предыдущие попытки ответственного раскрытия информации были отклонены.[56]

24 сентября 2013 г. в Ruby on Rails была обнаружена уязвимость, связанная с сохранением сохраняемости файлов cookie. В конфигурации по умолчанию весь хэш сеанса хранится в файле cookie сеанса, известном как CookieStore, позволяя любому аутентифицированному сеансу, имеющему файл cookie сеанса, войти в систему как целевой пользователь в любое время в будущем. В качестве обходного пути администраторам рекомендуется настроить файлы cookie для хранения на сервере, используя такие механизмы, как ActiveRecordStore.[57]

Исследователи Дэниел Джексон и Джозеф Ниар разработали отладчик данных, который они назвали «Space», который может анализировать доступ к данным программы Rails и определять, правильно ли программа придерживается правил, касающихся ограничений доступа. 15 апреля 2016 года Near сообщил, что анализ 50 популярных веб-приложений с использованием Space выявил 23 ранее неизвестных уязвимости безопасности.[58]

Рекомендации

  1. ^ "Rails 1.0: Вечеринка, как будто это один о-о!". weblog.rubyonrails.org. Получено 2017-03-01.
  2. ^ нежная любовь. "Выпущен Rails 6.0.3.4". Рубин на рельсах. Получено 2020-11-17.
  3. ^ "Выпуск v6.0.3.4 · rails / rails · GitHub". Получено 16 декабря 2019.
  4. ^ "Начало работы с Rails: что такое Rails?". guides.rubyonrails.org. Получено 10 августа 2014.
  5. ^ Гриммер, Ленц− (февраль 2006 г.). "Интервью с Дэвидом Хайнемайером Ханссоном из Ruby on Rails". MySQL AB. Архивировано из оригинал 25 февраля 2013 г.. Получено 2008-06-08.
  6. ^ Ханссон, Дэвид (7 августа 2006 г.). «Ruby on Rails будет поставляться с OS X 10.5 (Leopard)». weblog.rubyonrails.org. Получено 2008-06-08.
  7. ^ Ханссон, Дэвид (16 марта 2009 г.). "Rails 2.3: шаблоны, двигатели, стойки, металл, многое другое!". weblog.rubyonrails.org.
  8. ^ «День, когда Мерб присоединился к Rails». rubyonrails.org. 27 декабря 2008 г. Архивировано из оригинал на 09.02.2013.
  9. ^ «Примечания к выпуску Ruby on Rails 3.0 - Руководства по Ruby on Rails». edgeguides.rubyonrails.org. Получено 2017-05-24.
  10. ^ «Ruby on Rails 3.0 становится модульным». sdtimes.com. 2010-02-10. Получено 2010-08-06.
  11. ^ «Примечания к выпуску Ruby on Rails 3.1». guides.rubyonrails.org. 2012-09-01.
  12. ^ «Примечания к выпуску Ruby on Rails 3.2». guides.rubyonrails.org. 2012-09-01.
  13. ^ "Rails / master теперь 4.0.0.beta". weblog.rubyonrails.org. 2012-09-01.
  14. ^ Rails 3.2.x теперь совместим с Ruby 2.0.0 от sikachu · Pull Request # 9406 · rails / rails · GitHub. Github.com. Проверено 30 мая 2014.
  15. ^ «Rails 4.0: выпущена финальная версия!». weblog.rubyonrails.org. 2013-06-25. Получено 2017-05-24.
  16. ^ а б "Rails 4.1.0: Spring, Variants, Enums, Mailer previews, secrets.yml". weblog.rubyonrails.org.
  17. ^ а б «Rails 4.2: активное задание, асинхронная почта, адекватная запись, веб-консоль, внешние ключи». weblog.rubyonrails.org. Получено 5 декабря 2015.
  18. ^ а б «Rails 5.0: Action Cable, режим API и многое другое». weblog.rubyonrails.org. Получено 19 ноя 2016.
  19. ^ а б «Rails 5.1: любовь к JavaScript, системным тестам, зашифрованным секретам и многому другому». weblog.rubyonrails.org. Получено 10 мая 2017.
  20. ^ «Rails 5.2.0 FINAL: Active Storage, Redis Cache Store, HTTP / 2 Early Hints, CSP, учетные данные». weblog.rubyonrails.org. Получено 9 апреля 2018.
  21. ^ rafaelfranca (04.12.2018). "Выпущена Rails 5.2.2!". weblog.rubyonrails.org. Получено 2019-01-04.
  22. ^ дхх (19.08.2019). «Rails 6.0: почтовый ящик действий, текст действия, несколько баз данных, параллельное тестирование, Webpacker по умолчанию и Zeitwerk». weblog.rubyonrails.org. Получено 2019-11-12.
  23. ^ "Rails 1.0: Вечеринка, как будто это один о-о!". weblog.rubyonrails.org. Проверено 9 июня 2010 года.
  24. ^ "Rails 1.2: восхищение REST, HTTP-праздник любви и празднование UTF-8" В архиве 2012-11-02 в Wayback Machine. weblog.rubyonrails.org. Проверено 9 июня 2010 года.
  25. ^ «Rails 2.0: готово!». weblog.rubyonrails.org. Проверено 9 июня 2010 года.
  26. ^ Rails 2.1: часовые пояса, грязные данные, кеширование, зависимости гемов, кеширование и т. Д. В архиве 2012-11-02 в Wayback Machine. weblog.rubyonrails.org. Проверено 9 июня 2010 года.
  27. ^ «Rails 2.2: i18n, HTTP-валидаторы, потокобезопасность, совместимость с JRuby / 1.9, документы». weblog.rubyonrails.org. Проверено 9 июня 2010 года.
  28. ^ "Rails 2.3: шаблоны, двигатели, стойки, металл, многое другое!". weblog.rubyonrails.org. Проверено 9 июня 2010 года.
  29. ^ «Rails 3.0: готово!». weblog.rubyonrails.org. Проверено 30 августа 2010 года.
  30. ^ "переход на 3.1.0". Github.com.
  31. ^ «Подготовка к выпуску 3.2.0». Github.com.
  32. ^ «Рельсы 4 в 30'". blog.wyeworks.com.
  33. ^ дхх. «Rails 5.2.0 FINAL: Active Storage, Redis Cache Store, HTTP / 2 Early Hints, CSP, учетные данные». weblog.rubyonrails.org. Получено 2018-04-10.
  34. ^ дхх. «Rails 6.0: почтовый ящик действий, текст действия, несколько баз данных, параллельное тестирование, Webpacker по умолчанию и Zeitwerk». weblog.rubyonrails.org. Получено 2019-08-16.
  35. ^ Шон Линч (2007-12-15). "Fairleads: Рельсы 2.0 и строительные леса шаг за шагом". Fairleads.blogspot.com. Получено 2017-05-24.
  36. ^ «Ruby on Rails: развертывание». rubyonrails.org. Архивировано из оригинал на 2009-07-07. Получено 2012-12-03.
  37. ^ Максер, Крис. «PowerRuby обеспечивает поддержку Enterprise Ruby on Rails для IBM i». iPro Developer. Архивировано из оригинал 9 октября 2013 г.. Получено 9 мая 2014.
  38. ^ Js_Escape_Map. "ActionView :: Helpers :: JavaScriptHelper". Api.rubyonrails.org. Получено 2017-05-24.
  39. ^ «Rails 3.0: готово!». weblog.rubyonrails.org. Получено 2010-08-30. Rails 3.0 был разработан для работы с Ruby 1.8.7, Ruby 1.9.2 и JRuby 1.5.2+.
  40. ^ "Выпущен Rails 3.2.0.rc2!". weblog.rubyonrails.org. 2012-09-01.
  41. ^ «Ruby on Rails: скачать». rubyonrails.org. Архивировано из оригинал на 2009-12-12.
  42. ^ «Начало работы с Rails». guides.rubyonrails.org. Получено 2014-03-10.
  43. ^ ""Ruby on Rails «Статус торговой марки». USPTO. Получено 2007-08-01.
  44. ^ ""Rails "Статус торговой марки". USPTO. Получено 2007-08-01.
  45. ^ «Статус торговой марки логотипа Rails». USPTO. Получено 2007-08-01.
  46. ^ а б Форд, Пит (2007-07-23). «Начало работы с Rails: от новичка к профессионалу». Архивировано из оригинал 5 августа 2007 г.. Получено 2007-08-01.
  47. ^ Купер, Питер (2007-07-24). «Дэвид Хайнемайер Ханссон говорит« Нет »использованию логотипа Rails». Получено 2007-08-01.
  48. ^ «5 вопросов, интервью с разработчиком Twitter Алексом Пейном». Radicbehavior.com. 2007-03-29. Архивировано из оригинал 23 апреля 2009 г.. Получено 2014-11-04. По разным показателям Twitter на данный момент является крупнейшим сайтом Rails в сети. Работа на Rails вынудила нас решать проблемы масштабирования - проблемы, с которыми в конечном итоге борется любой растущий сайт, - гораздо раньше, чем я думаю, мы бы это сделали на другом фреймворке.
  49. ^ Стив Дженсон; Интервью с Алексом Пейном и Роби Пойнтером (03.04.2009). «Твиттер на Scala». artima.com. Получено 2009-07-18. У нас была система очередей на основе Ruby, которую мы использовали для связи между интерфейсами Rails и демонами, и в итоге мы заменили ее системой, написанной на Scala. На самом деле Ruby работал довольно прилично в нормальном устойчивом состоянии, но время запуска и поведение при сбое были нежелательными.
  50. ^ «Twitter отказался от Ruby для Scala». theregister.co.uk. 2009-04-01. Получено 2009-07-18. По словам Пейна, к концу этого года Twitter надеется, что вся инфраструктура промежуточного программного обеспечения и API-интерфейсы будут перенесены на новый язык. Ruby останется, но только во внешнем интерфейсе. «Мы по-прежнему довольны Rails для создания функций, ориентированных на пользователя ... с точки зрения производительности, это нормально для людей, щелкающих по веб-страницам. Это тяжелый тип асинхронной обработки, от которого мы отказались».
  51. ^ Райан Кинг (2009-09-25). «Твиттер на Руби». Эван Уивер. Получено 2009-09-29. Мы используем Scala для некоторых вещей в Twitter, но большая часть сайта - Ruby.
  52. ^ «Поиск в Twitter стал в 3 раза быстрее». Twitter. Получено 6 июня, 2014.
  53. ^ «Вот почему Ruby On Rails так популярен». Business Insider. Архивировано из оригинал 21 декабря 2011 г.. Получено 10 февраля, 2012.
  54. ^ «Статистика использования Ruby on Rails». Trends.builtwith.com. Получено 2016-01-04.
  55. ^ «Статистика использования токенов Ruby on Rails». Trends.builtwith.com. Получено 2016-01-04.
  56. ^ Проталинский, Эмиль. "Как GitHub справился с взломом". Zdnet.com. Получено 2017-05-24.
  57. ^ Брук, Крис (2013-09-25). «Проблема безопасности в Ruby on Rails может открывать файлы cookie». Сообщение с угрозой. Служба новостей Kaspersky Lab Security. Получено 2014-06-04.
  58. ^ «Обновление веб-приложений». Новости MIT. Получено 2016-04-21.

Библиография

внешняя ссылка