2009-11-11 2 views
9

no sé nada sobre ruby ​​pero mucho sobre php.¿Los raíles son difíciles de entender para un desarrollador de PHP?

cuando codifica en ror ... ¿realmente entiende lo que está sucediendo debajo de la superficie si es un principiante? ¿Y TIENES que entenderlo o es lo suficientemente bueno como para saber lo suficiente como para construir algo rápido?

Buscando experiencias de personas que han hecho la transición.

+2

Es bueno ver que la gente hace clic en "cerrar" sin leer la pregunta –

+0

Me encanta cómo la mitad de las respuestas aquí son simplemente enlaces a libros/tutoriales, cuando la pregunta ni siquiera lo solicitó. –

Respuesta

8

IMO ha pasado de C# a Ruby on Rails de nuevo a C#, es que puedes salir adelante con aplicaciones simples que cumplen completamente las "opiniones" de Rails sin saber lo que sucede. Sin embargo, te toparás con obstáculos en el momento en que tengas que hacer algo que no sea una tarea CRUD trivial o necesites implementar una tarea CRUD de una manera diferente a la normal renderizar un formulario, usuario hits post, acción de controlador de creación de scaffolded básico camino. Una vez que llegue a eso, tendrá que aprender más acerca de Ruby para descubrir exactamente qué está haciendo Rails.

5

También sugeriría recoger una copia de The Ruby Programming Language. Para mí es el php.net de ruby.

+1

Agregue el libro de cocina Ruby también. – Swanand

+0

TRPL está muy * ok * libro de IMO, sugiero buscar El Rubyista bien fundamentado: http://davidhayden.com/blog/dave/archive/2009/06/06/TheWellGroundedRubyistBookReview.aspx –

0

Tomando las preguntas en orden -

En estos días me entienden un poco de lo que está pasando en el interior del marco - no es algo que era del todo cierto cuando empecé a trabajar con Rails (aunque había estado coqueteando con Ruby desde hace unos años)

No tiene que entender los rieles, pero realmente, realmente ayuda a comprender el patrón MVC (Modelo-Vista-Controlador). Puedes recorrer un largo camino muy rápido, pero como con la mayoría de las cosas, producir algo realmente de alta calidad requerirá el trabajo duro.

Existen diferencias sustanciales en filosofía entre Ruby y PHP como idiomas (IMO). Ruby es más consistente en sintaxis pero su fuerte fondo OO significa que hay una curva de aprendizaje no trivial para negociar. Creo que vale la pena, YMMV, ¿por qué no lo tomas para una prueba de manejo?

1

Ruby puede ser difícil, ¡escribir Ruby with Rails es fácil! El lenguaje es natural y se lee muy bien. Implementar aplicaciones Rails es donde (IMO) se encuentra el desafío. No tendrá problemas si conoce bien PHP, especialmente cuando tiene un libro como Rails for PHP Developers

+0

Phusion Passenger hace despliegue muy, muy fácil. Sin eso, diría que eres 100% correcto. –

0

El libro Programación de Ruby es esencial. Debes tener una comprensión razonable de Ruby para escribir aplicaciones en Rails, o te golpearás la cabeza contra la pared la mayor parte del día. También le recomiendo que consulte otros proyectos de Rails en GitHub para comprender mejor cómo se hacen las cosas, las mejores prácticas, etc.

Luego, cuando se quede atascado, publique su pregunta específica en Stack Overflow y estaremos aquí para ayudarlo :)

3

Para responder a su pregunta básica, como en todas las cosas, aprenderá todo lo que quiera. ¿Necesita entender lo que está pasando bajo el capó, no? ¿Necesita saber cómo funciona ExpressionEngine para crear un sitio web que lo use?

En cuanto a aprender Ruby, esto es muy recomendable.Cualquier cosa más allá de sitios web triviales requerirá que conozcas y entiendas a Ruby y sus expresiones idiomáticas.

Creo que el mayor problema al pasar de php a Rails es el método de desarrollo. Se crea demasiado PHP con todo o mucho de lógica en la vista. Las aplicaciones Rails se crean con toda la lógica existente en los modelos. Si entiendes esto, entonces ya estás un largo camino en la comprensión de Rails.

En cuanto a recursos, recomendaría obtener el libro Ruby for Rails: Ruby Techniques for Rails Developers de David Black. Está diseñado para llevarte de un desarrollador de Rails a un desarrollador de Ruby.

+1 para todos los demás recursos enumerados anteriormente.

+0

¡Muy buen consejo! – wentbackward

6

Como la mayoría de las cosas, una vez que entiendes algo completamente, miras hacia abajo en un pequeño paso y recuerdas la montaña que viste la primera vez que la miraste. Yo diría que sí, Ruby es difícil de entender para la mayoría de los desarrolladores, por estas razones:

  • Ruby tiene algunos conceptos de programación muy potentes pero menos comunes. Entonces hay algunos aprendizajes conceptuales que se deben tener.
  • Además de esto, la mayoría de los programadores que encuentro, con alguna experiencia a sus espaldas, ya están construyendo fundamentos y conceptos sobre lo que es la programación, excepto que esos conceptos se construyen usando constructos del lenguaje o dominio particular en el que trabajan .

El mejor consejo que puedo dar es que cada entorno de idioma/marco/dev sólo proporciona una forma de manipular las facetas de la máquina/red. El error es pensar que este es la única manera. Si te acercas al pensamiento de Ruby, ¿cómo se relaciona esto con PHP, entonces espera luchar, porque en muchos casos, justo debajo de la superficie, no lo hará.

Un ejemplo concreto es:

  • ¿Dónde está mi 'para' bucle? et vous lucha

sin embargo, si le preguntas a

  • ¿Cómo realizar este pedazo de código para cada elemento de esta matriz? Encontrarás muchas respuestas maravillosas y te preguntarás por qué alguna vez has tenido un bucle for en primer lugar. Pero recuerde, ¡hay maneras incluso mejores que Ruby tiene hoy!

Así que con toda esa potencia en Ruby y también en el marco de los rieles, se debe algo de tiempo para aprender los conceptos básicos. Sí, puedes hacer maravillas con cosas como los rieles, con un conocimiento muy limitado. Imagina lo que puedes hacer con un par de años de aprendizaje de rubíes sólidos en tu haber.

Peter Norvig escribió un muy buen documento llamado Enséñate programando en diez años. Yo recomendaría echarle un vistazo a eso.

1

Ah sí, y como se dirige específicamente a los rieles, hay un magnífico conjunto de recursos al Rails Guides. Además de un montón de buenos consejos en las muchas respuestas aquí.

0

Presupuesto de que

... cuando el código en ROR ... ¿realmente entender lo que está pasando bajo la superficie, si usted es un principiante?

PHP y RoR son incomparables. Ruby en sí es un lenguaje de programación con su sintaxis similar a PHP y otros, Ruby on Rail sin embargo, es un marco de aplicación que usa la arquitectura MVC, que a su vez es mucho más complicado que el lenguaje escrito por.

Si está familiarizado con frameworks de PHP MVC como CakePHP, CodeIgniter o Zend Framework, entonces no debería tener demasiada dificultad tratando de calcular la diferencia de sintaxis ya que (variaciones de los frameworks MVC) son fundamentalmente similares.

+0

No diría que un framework 'foo' escrito en el lenguaje' bar' es más complicado que 'bar' en sí mismo. Los idiomas son definitivamente más complicados de entender (aprender a usar es un caso diferente). – Swanand

+0

@Swanand, No hay desacuerdo al respecto. Es solo que parece que los desarrolladores siempre comparan PHP con 'una biblioteca de paquetes 'por ejemplo/.NET o RoR, que es incomparable. Si @unknown preguntaba desde PHP a Ruby, entonces diré que no será tan difícil como él/ella puede haber captado ya los fundamentos de la informática y los lenguajes de programación son como diferentes sabores. –

+0

Un lenguaje es básicamente un marco en sí mismo, por lo que no veo cómo esa comparación no es válida. Puede escribir una aplicación web en PHP sin formato (sin un marco). Puede escribir la misma aplicación web en Rails. ¿Cuál es el problema? –

0

Vine de PHP a Ruby, y no fue nada difícil. Recomiendo jugar con Rails, tener una idea de cómo se escribe generalmente Ruby. Entonces, una vez que comiences a construir algo real, tendrás que sumergirte en Ruby para entender cómo mejorar las cosas. Aprender Ruby en sí mismo no es muy difícil, está hecho para ser muy legible y comprensible. Sin embargo, es importante asegurarse de comprender algunas de sus características más importantes, como bloques y metaprogramación.

Para mí, lo único que realmente me abrió los ojos a Ruby fue cuando comprendí por primera vez los bloques. Han sido todas las cosas buenas desde :).

4

Siendo un desarrollador de PHP desde hace algunos años, y viniendo de un fondo C y C++, puedo decirles que aprender Ruby después de PHP no es muy difícil en absoluto (subjetivo, pero también lo es la pregunta). Ruby, por supuesto, tiene sus propios modismos y 'mejores prácticas' que varían de PHP, pero creo que Ruby te resultará divertido y fácil de aprender. Muchas de las 'trampas' en PHP no están presentes en Ruby, por lo que hace que el aprendizaje del idioma sea un poco más fácil. Además, si tienes algún tipo de fondo OOP, estarás mucho mejor al entender a Ruby.

Como han señalado otros, puedes crear aplicaciones simples con Ruby on Rails con la suficiente rapidez, pero si necesitas hacer algún trabajo pesado, tendrás que empezar a entender lo que hay debajo y cómo funciona Rails. Esto no es diferente de PHP y uno de sus varios frameworks, como CakePHP o CodeIgniter.

También sugiero consultar el libro Rails for PHP Developers si está interesado en aprender RoR.

Cuestiones relacionadas