Подтвердить что ты не робот

Как работает рубин на рельсах?

Я разработчик PHP, который знает немного Ruby. Я хочу изучить Ruby on Rails, но большинство ресурсов, с которыми я столкнулся, рассматривают функциональность RoR как "волшебную", т.е. Она имеет определенную внутреннюю согласованность, но не беспокойтесь о том, как она работает с Ruby, MySQL и т.д.

В любом случае, мне нужно глубокое понимание того, как работает RoR, дизайнерские решения, связанные с его построением и т.д. В частности, меня интересует ActiveRecord, но на самом деле я ищу весь пакет.

Любые книги/сайты/советы приветствуются.

4b9b3361

Ответ 1

Книги "Agile Web Development with Rails" и "The Rails Way" очень хороши. "Активная запись" идет очень активно для Active Record, но не затрагивает слишком много. Подкаст Railscasts иногда просто использует магию, но иногда он объясняет, что происходит на самом деле. Различные блоги, такие как Art of Mission, могут попасть в то, что вы ищете.

Кроме того, использование драгоценного камня ruby-debug дает вам гораздо лучшее представление о том, что происходит - вы можете входить в то, что работает за кулисами.

Ответ 2

Здесь есть две области, которые можно изучить отдельно:

  • Общие понятия (включая шаблоны проектирования, общие принципы отношения, такие как DRY и CoC или даже маневренность и т.д.), поскольку они являются принципами многих дизайнерских решений в Rails. Любое из этих понятий может быть изучено независимо от Rails (поскольку они являются концепциями общего программирования). Хорошо иметь хотя бы некоторое представление об этом, прежде чем копать все глубже. Есть много источников об общих принципах по всей сети (вышеупомянутый сайт Мартина Фаулера является одним из лучших источников для понимания таких понятий).

  • Способ Rails реализует эти понятия в своем корпусе. Здесь, опять-таки, нужно иметь в виду две вещи. Поскольку Rails сильно использует особенности своего родного языка, важно понимать особенности Ruby (такие как mixins и множество динамических функций Ruby). Последнее, что нужно понять, - это , как Rails использует эти функции, т.е. как он разбивается на классы и модули, сколько его функций динамически создаются при запуске и т.д. Для этой цели я настоятельно рекомендую книгу Ruby for Rails от David A. Black (это точно о Ruby, ее особенностях и способе использования Rails). Хотя эта книга может быть немного устаревшей, я думаю, что она по-прежнему бесценна в ее содержании.

Ответ 3

Если вы действительно хотите знать, как это работает, вы можете просто посмотреть исходный код. онлайновые API-документы позволяют видеть исходный код каждого метода прямо на странице документации.

ActiveRecord in Rails основан на Martin Fowler Активный шаблон записи. Это в основном ORM (объектно-реляционный картограф). Это даже не так сложно, как ORM. Java Persistence with Hibernate имеет хороший обзор общих концепций ORM.

Ответ 5

Это своего рода тангенциальный ответ на ваш вопрос, но я тоже пришел из разработки PHP в Ruby/Rails dev, и для меня это был большой переход. Как разработчики PHP, мы привыкли проникать в ничтожные, говорить и не мешать смотреть под капот.

По дизайну Rails - это черный ящик. Вы должны изучать Rails, почти как язык. Это новый способ мышления веб-разработчиков, особенно с точки зрения PHP dev, хотя эта идея не является редкостью для программирования в целом.

Не утруждая себя поиском под капотом, может быть лучший способ начать делать вещи "Rails".

Ответ 6

Jamis Buck имеет приятную серию " Under the Hood" статьи о его blog, которые охватывают некоторые аспекты внутренних элементов Rails.

Ответ 7

Я нашел этот сайт хорошей исходной ссылкой:

http://www.tutorialspoint.com/ruby-on-rails-2.1/index.htm

Он принимает MySQL в своих примерах.

Я уверен, что вы можете найти кучи и кучи, просто подойдя к "рубинам на рельсах".

Ответ 8

"Магия" в Rails включает method_missing и концепцию metaprogramming. Дейв Томас Прагматические программисты создали набор скринкасты по метапрограммированию Ruby.

PHP имеет несколько эквивалентную функцию, называемую __call, а PHP 5.3 представляет __callstatic. Вы можете взглянуть на них, а также найти Google для "метапрограммирования php", для некоторых материалов для чтения о реализации поведения Rails в PHP.

Ответ 10

Если вы действительно хотите понять Rails, прочитайте источник для бит Rails, который вы хотите.

/Library/Ruby/Gems/1.8/gems/на OSX или заблокировать рельсы и получить к нему доступ в вашем каталоге RAILS_ROOT/vendor/