ruby-on-rails - que - ruby on rails tutorial
¿Cómo funciona Ruby on Rails? (10)
Aquí hay dos áreas que se pueden examinar por separado:
Conceptos generales (que incluyen patrones de diseño, principios generales de actitud como DRY y CoC o incluso agilidad, etc.) ya que son los principios detrás de muchas decisiones de diseño en Rails. Cualquiera de estos conceptos puede estudiarse independientemente de Rails (ya que son conceptos generales de programación). Es bueno tener al menos alguna comprensión de estos antes de cavar más profundo. Hay muchas fuentes acerca de tales principios generales en toda la red (el sitio de Martin Fowler antes mencionado es una de las mejores fuentes para captar tales conceptos).
La forma en que Rails implementa estos conceptos en su corpus. Hay, una vez más, dos cosas para tener en cuenta aquí. Dado que Rails aprovecha en gran medida las características de su lengua materna, es fundamental comprender las peculiaridades de Ruby (como mixins y muchas de las funciones dinámicas de Ruby). Lo último que debe entender es cómo utiliza Rails estas características, es decir. cómo se divide en clases y módulos, cuántas de sus características se crean dinámicamente en la ejecución, etc. Para este propósito, recomiendo reservar Ruby for Rails de David A. Black (que trata exactamente sobre Ruby, sus peculiaridades y la forma en que Rails las usa). Si bien este libro podría estar un poco desactualizado, creo que todavía tiene un valor incalculable en su contenido.
Soy un desarrollador de PHP que sabe un poco de Ruby. Quiero aprender Ruby on Rails, pero la mayoría de los recursos que he encontrado tratan la funcionalidad RoR como "mágica", es decir, tiene una cierta consistencia interna, pero no te molestes en preguntar cómo funciona en términos de Ruby, MySQL, etc.
De todos modos, quiero una comprensión profunda de cómo funciona RoR, las decisiones de diseño que se tomaron para construirlo, etc. En particular, estoy interesado en ActiveRecord, pero realmente estoy buscando todo el paquete.
Cualquier libro / sitio / consejo de bienvenida.
Encontré este sitio como una buena referencia inicial:
http://www.tutorialspoint.com/ruby-on-rails-2.1/index.htm
Asume MySQL en sus ejemplos.
Sin embargo, estoy seguro de que puedes encontrar montones y montones simplemente buscando en Google "tutoriales sobre ruby on rails".
Esta es una especie de respuesta tangencial a su pregunta, pero yo también vine del desarrollo de PHP al desarrollador de Ruby / Rails, y fue una gran transición para mí. Como desarrolladores de PHP, estamos acostumbrados a entrar en lo esencial, a hablar, y no se nos impide mirar debajo del capó.
Por diseño, Rails es una caja negra. Se supone que debes aprender Rails, casi como un lenguaje en sí mismo. Es una nueva forma de pensar en desarrollo web, especialmente desde la perspectiva de un desarrollador de PHP, aunque esta idea no es poco común para la programación en general.
No molestarse en mirar debajo del capó puede ser la mejor manera de comenzar a hacer las cosas "a la manera de Rails".
Este también podría encajar aquí -> http://railsforphp.com/
Jamis Buck tiene una buena serie de artículos " Under the Hood " en su blog que cubren algunos aspectos de las partes internas de Rails.
Los libros "Agile Web Development with Rails" y "The Rails Way" son bastante buenos. "Pro Active Record" es realmente profundo para Active Record, pero no toca demasiado. El podcast Railscasts a veces simplemente usa la magia, pero a veces explica lo que realmente está sucediendo. Varios blogs como Art of Mission pueden entrar en lo que estás buscando.
Además, el uso de la gema ruby-debug te proporciona una mejor comprensión de lo que está sucediendo: puedes acceder a lo que se está ejecutando detrás de escena.
Si realmente quieres entender Rails, lee la fuente del bit de Rails que quieras.
/Library/Ruby/Gems/1.8/gems/ en OSX o congelar rieles y tener acceso a él en su directorio RAILS_ROOT / vendor /
Si realmente quieres saber cómo funciona, puedes simplemente mirar el código fuente. Los documentos API en línea le permiten ver el código fuente de cada método directamente en la página de documentación.
ActiveRecord in Rails se basa en el patrón de registro activo de Martin Fowler. Básicamente es un ORM (asignador relacional de objetos). Ni siquiera es tan sofisticado en lo que respecta a los ORM. Java Persistence con Hibernate tiene una buena visión general de los conceptos de ORM comunes.
metaprogramación de rubíes magia en los rieles: mira los libros de Rappin "Professional Rails" y Ediger "Advanced Rails", además de Black "Ruby for Rails" mencionado anteriormente
Las convenciones de nombres son importantes:
http://rails.wincent.com/wiki/Rails_conventions
http://www.softiesonrails.com/2007/10/18/ruby-101-naming-conventions
La "magia" en Rails implica la method_missing
y el concepto de metaprogramación . Dave Thomas de The Pragmatic Programmers creó un conjunto de screencasts sobre la metaprogramación de Ruby .
PHP tiene una función algo equivalente llamada __call
, y PHP 5.3 introdujo __callstatic
. Puede echarle un vistazo a eso, así como buscar en Google "metaprogramación de php", para obtener material de lectura sobre cómo implementar el comportamiento de Rails en PHP.