Comment fonctionne ruby on rails?

Je suis un développeur PHP qui connaît un peu Ruby. Je veux apprendre Ruby on Rails, mais la plupart des ressources que j'ai rencontrées traitent la fonctionnalité RoR comme "magique" - c'est-à-dire qu'elle a une certaine cohérence interne, mais ne vous embêtez pas à demander comment cela fonctionne en termes de Ruby, MySQL, etc.

Quoi qu'il en soit, je veux une compréhension profonde du fonctionnement de RoR, des décisions de conception qui ont été prises pour le construire, etc. En particulier, je suis intéressé par ActiveRecord, mais vraiment je suis à la recherche de l'ensemble paquet.

Tous les livres / sites / conseils bienvenus.

33
demandé sur Simone Carletti 2008-10-15 04:07:42

10 réponses

Les livres "Agile Web Development with Rails" et "The Rails Way" sont tous deux plutôt bons. "Pro Active Record" va vraiment en profondeur pour Active Record, mais ne touche pas trop d'autre chose. Le podcast Railscasts utilise parfois juste la magie, mais parfois il explique ce qui se passe vraiment. Divers blogs tels que Art of Mission {[2] } peuvent entrer dans ce que vous cherchez.

De plus, l'utilisation de la gemme ruby-debug vous donne une bien meilleure compréhension de ce qui se passe - vous pouvez entrez dans ce qui se passe dans les coulisses.

22
répondu DA. 2008-10-15 02:27:16

Il y a deux domaines ici qui peuvent être examinés séparément:

  1. Concepts généraux (qui incluent des modèles de conception, des principes généraux d'attitude comme DRY et CoC ou même l'agilité, etc.) puisqu'ils sont les principes derrière de nombreuses décisions de conception dans Rails. Chacun de ces concepts peut être étudié indépendamment de Rails (puisqu'il s'agit de concepts de programmation généraux). Il est bon d'avoir au moins une certaine compréhension de ces avant de creuser plus profondément. Il existe de nombreuses sources à ce sujet principes généraux sur le net (le site de Martin Fowler mentionné ci-dessus est l'une des meilleures sources pour saisir de tels concepts).

  2. The way Rails implémente ces concepts dans son corpus. Il y a encore deux choses à avoir à l'esprit ici. Puisque Rails exploite fortement les fonctionnalités de sa langue maternelle, il est crucial de comprendre les particularités de Ruby (telles que les mixins et beaucoup de fonctionnalités dynamiques de Ruby). La dernière chose à comprendre est comment Rails utilise ces fonctionnalités, IE. comment il est décomposé en classes et modules, combien de ses fonctionnalités sont créées dynamiquement sur la course et ainsi de suite. A cet effet, je recommande fortement Livre Ruby pour Rails de David A. Black (qui est exactement sur Ruby, ses particularités et la façon dont Rails les utilise). Bien que ce livre puisse être un peu obsolète, je pense qu'il est toujours inestimable dans son contenu.

13
répondu Milan Novota 2008-10-15 11:36:17

Si vous voulez vraiment savoir comment il fonctionne, vous pouvez juste regarder le code source. Les documents API en ligne vous permettent de voir le code source de chaque méthode directement dans la page de documentation.

ActiveRecord dans Rails est basé sur le modèle Active Record de Martin Fowler . C'est essentiellement un ORM (object-relational mapper). Ce n'est même pas très sophistiqué en ce qui concerne les ORM. La Persistance Java avec Hibernate a un bon aperçu des concepts ORM communs.

9
répondu Ken Liu 2013-09-15 20:27:44

Celui - ci pourrait bien convenir ici aussi - > http://railsforphp.com/

7
répondu user29697 2008-10-20 17:15:04

C'est une sorte de réponse tangentielle à votre question, mais moi aussi, je suis passé du développement PHP à Ruby/Rails dev, et c'était une grande transition pour moi. En tant que développeurs PHP, Nous avons l'habitude d'entrer dans le nitty-gritty, de parler, et de ne pas être empêchés de regarder sous le capot.

Par conception, Rails est une boîte noire. Vous êtes censé apprendre les Rails, presque comme une langue elle-même. C'est une nouvelle façon de penser du développement web, en particulier du point de vue D'un développement PHP, bien que cette idée ne l'est pas rare à la programmation en général.

Ne pas prendre la peine de regarder sous le capot peut être la meilleure façon de commencer à faire les choses "the Rails way."

5
répondu Lucas Oman 2008-10-15 02:47:09

Jamis Buck a une belle série d'articles " sous le capot " sur son blog qui couvrent certains aspects des internes de Rails.

5
répondu John Topley 2008-10-15 10:51:12

"magie" dans les Rails implique method_missing et le concept de métaprogrammation. Dave Thomas de La Pragmatique Programmeurs créé un ensemble de screencasts sur la métaprogrammation Ruby.

PHP a un peu l'équivalent de la fonction appelée __call, et PHP 5.3 introduit __callstatic. Vous pouvez jeter un oeil à ceux-ci, ainsi que rechercher Google pour "PHP metaprogramming", pour du matériel de lecture sur l'implémentation D'un comportement de type Rails dans PHP.

4
répondu 2008-10-19 22:05:51

J'ai trouvé ce site une bonne référence de départ:

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

Il suppose MySQL dans ses exemples.

Je suis sûr que vous pouvez trouver des tas et des tas en googlant simplement pour "ruby on rails tutoriels", cependant.

4
répondu Mark 2009-07-16 12:28:18

Ruby metaprogramming magic in rails: regardez les livres de Rappin "Professional Rails" et Ediger "Advanced Rails", en plus du noir "Ruby for Rails" mentionné ci-dessus

Les conventions de nommage sont importantes:

Http://rails.wincent.com/wiki/Rails_conventions

Http://www.softiesonrails.com/2007/10/18/ruby-101-naming-conventions

1
répondu Gene T 2008-10-15 13:57:11

Si vous voulez vraiment comprendre Rails, lisez la source pour le bit de Rails que vous voulez.

/ Library / Ruby / Gems / 1.8/ gems / sur OSX ou freeze rails et y avoir accès dans votre répertoire RAILS_ROOT/ vendor /

0
répondu Omar Qureshi 2009-07-16 12:10:57