Yo también fui zombie ..

Hola, a todas estas chicas programadoras / no programadoras, zombies/no-zombies jaja o lo que sean, en esta ocasión tuve la oportunidad de utilizar una herramienta en linea disponible PARA TODOS para realizar unas primeras practicas en Ruby, se trata de RailsForZombies 😉 aquí les dejo el link para que puedan chequear:

http://railsforzombies.org/levels/1

Voy empezar narrarles mi experiencia por los distintos niveles, resumida en: aspectos que desconocía, que me parecieron interesantes o simplemente aquellos que no me gustan y que tal me fue con los retos de cada nivel.

Pero antes voy a contarles  con que se comen estos cerebros ..

El tutorial contiene distintos niveles estructurados de la siguiente manera

LEVEL 1: DEEP IN THE CRUD (create, read, update, delete)
FIND I
CREATE
FIND II
QUERY
UPDATE
DESTROY
LEVEL 2: MODELS TASTE LIKE CHICKEN
CREATE MODEL
VALIDATIONS I
VALIDATIONS II
VALIDATIONS III
BELONGS TO
RELATIONSHIP FIND
LEVEL 3: THE VIEWS AIN'T ALWAYS PRETTY
VIEWS SIMPLE
LINKING
EACH BLOCKS
IF
LINKING IN BLOCKS
LEVEL 4:Controllers Must Be Eaten
Show Action
Respond To
Controller Create Action
Controller Before Action
LEVEL 5: Routing Into Darkness
Resource Route
Route Matching
Route Redirecting
Root Route
Named Route

En mi experiencia con el nivel 1:

Puedo decir que los principios de CRUD los conocía, pues todo aquel que ha estudiado bases de datos por ley debe conocerlos, sin embargo estas llamadas “hash” son desconocidas (aunque no en su totalidad) para mi, estoy acostumbrada a lidiar con los principios de “clases” y hacer las llamas a procedimientos con el típico “.” que se hace muy convencional y cómodo para todo programador.

Durante este nivel, el vídeos nos muestran:

  • Crear una app como Twitter
  • Imaginarnos una base de datos: (rows y columnas)
  • Concepto de un Hash (informacion traida de de try ruby  http://tryruby.org/levels/1/challenges/0 ) que no es mas que una serie de valores junto a una clave , dentro de {} . Como ej: variable = {key: value}
  • Las sintaxis sobre las que podemos trabajar .t= Tweet.find(3), Hash (t.[:status], t.[:zombie]) ó Alternativa (t.id, t.status)
  • Y ahora les muestro un resumen con los principios del CRUD

CRUD.PNG

Ahora en cuanto a los retos se refiere…..

Pueden ver como luego de vaaaariooos errores obtuve lo que me pedían ajajajaja, les pondré un ejemplo de esta travesía con el primer reto, luego todo mejoro , quizás tenia miedo al principio. Pero, ¡Lo logre!.

reto1.PNG

En mi experiencia con el nivel 2:

Los  conceptos de clases e instancias heredados de POO no son totalmente ajenos para mi, ya que al programar con C++, Java o usar un framework como Laravel que siguen los mismos principios obtienes ciertas destrezas, sin embargo, me tope con el dilema de todo programador “conocer la sintaxis apropiada del lenguaje” y mas que conocerla, ENTENDERLA. La forma en la que podemos expresar y manipular las clases en Rails , era un concepto TOTALMENTE NUEVO para mi.

Aunque debo confesar lo mas difícil fue , el ultimo reto “Encontrar todas las armas que pertenecen a la zombie llamada Ashley” , había que diferenciar para esos casos los plurales que traían la relación con el “has many” .

Durante este nivel, el vídeos nos muestra:

  • La concepción general de modelos, gracias a un modelo se puede manipular información de la Base de Datos, este modelo se genera a partir de la creación de una clase , y, posteriormente a través de la clase se accede a la data deseada.
  • Creación de modelos, validación de campos y relaciones. Les dejo una lista general de validaciones posibles

TIPOS DE VALIDACION.PNG

En mi experiencia con el nivel 3:

¡WOW! ya esto se escapa de mi, aunque es similar al estilo que maneja Laravel, ciertamente “no es igual”, lo que hace que cada item implique una curiosidad enorme en mi jajaja, lo que hice fue buscar la documentacion de Ruby 🙂 y de verdad, la recomiendo.

Ademas creo que ha sido el resto que mas me ha costado.

Durante este nivel, el vídeos nos muestra:

  • Composición de un proyecto que utiliza ruby, donde se almacenan las vistas, el index.
  • ¿Como incluir el codigo de ruby en html?
  • Nos muestra como establecer enlaces, Sentencias Each.

Lo que sin duda en esta unidad llamo mas mi atención fue conocer a profundidad lo que en este caso retorna mi ciclo, bucle, o sentencia Each. Aquí les dejo un print con un ejemplo .

EACH_RETORNA

 

En mi experiencia con el nivel 4:

Me sorprendio muchisimo que el facilitador aclarara que los controladores son “el cerebro” de esto, estoy segura de que tienen mucha importancia pero jamas pense que estaban en el top del sistema. Para mi el top del sistema es como se relacionan todos los elementos, la interaccion con la bd, la manera de manejarlo y tambien la sintaxtis. Asi que, con respecto a ello me atrevo en particular a disernir.

Durante este nivel, el vídeos nos muestra:

  • EL concepto de controlador, y la particularidad de nombrar a nuestras clases como el controlador.
  • Accesos a la informacion del controlador desde las vistas y que proposito cumple el “@”
  • Mecanismos para acceder no solo a un tipo de informacion sino a cualquiera, a travès de la creacion y uso de parametros.
  • Respond con XML y Json, comunmente usados por los web dev.
  • Autorizaciones, correspondientes al usuario que esta en sesion.
  • Finalmente, las principales acciones que corresponden a un controlador.

Y aqui una capture, en medio de una practica del nivel 4.

yo_en_plena_practica

En mi experiencia con el nivel 5: Mi cerebro ya estaba AGOTADO de tantas asociaciones, sin embargo dije, si he llegado hasta aqui ¿porque frenar? ademas la unidad parecia ser un poco menos complicada, ya que tocaba el tema de los enrutamientos. Aspecto que es claramente importante para manejar correctamente todo modelo MVC.

El video nos habla sobre:

  • ¿Como obtener apropiadamente la informacion que almacenamos en nuestros hash?, pues esto se logra a travès del uso correcto de las rutas.
  • Punto importante: “las rutas siempre deben ser definididas”
  • Diferentes sintaxis que podemos manejar en las rutas.
  • Como son nombradas, enlazadas, llamadas.
  • El “Root::route” que deriva de un controlador seguido de una accion
  • Y por ultimo, los diferentes parametros que podemos manejar dentro de las rutas.

Aqui les dejo como finalice exitosamente, bajo mi usuario personal de code School luego de mucho sudor y pensar el reto del Zombie, por eso YO TAMBIEN FUI ZOMBIE …

finalice

 

Programadores:  recuerden a si mismos, no repetir codigo una y otra vez..

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s