Comprender los conceptos básicos de Ruby on Rails: HTTP, MVC y rutas

Después de aprender su primer lenguaje de programación , puede preguntarse qué puede hacer con la programación: ¿IA / aprendizaje automático? ¿Desarrollo de hardware? ¿Aplicaciones móviles? ¡O quizás quieras empezar a desarrollar aplicaciones web! :)

Aquí entenderemos los conceptos básicos de cómo funcionan la web, las rutas y la arquitectura MVC utilizando el marco web Ruby on Rails. Sumérjase en el mundo web.

Antes de aprender desarrollo web con Rails, realmente recomiendo aprender sobre Ruby primero .

¿Cómo funciona la web?

La web tiene un montón de capas (Aplicación, TCP, Internet, capas de hardware) que están todas conectadas. Pero básicamente, funciona a través de HTTP ( Protocolo de transferencia de hipertexto ).

El Protocolo de transferencia de hipertexto ( HTTP ) es un protocolo de aplicación para sistemas de información distribuidos, colaborativos e hipermedia. - Wikipedia

El HTTP funciona como un ciclo de solicitud-respuesta en el modelo cliente-servidor .

Tenemos un navegador web (Google Chrome, por ejemplo). Entonces escribimos la www.google.comURL y el cliente envía la solicitud HTTP (mensaje de solicitud) al servidor . El servidor devuelve la respuesta HTTP (mensaje de respuesta; en ese caso, la respuesta es el HTML del sitio web de Google).

El cliente realiza la solicitud y recibe la respuesta del servidor . El cliente maneja la interfaz de usuario y las interacciones del usuario. En el servidor, podemos almacenar y recuperar datos (en bases de datos), procesar la lógica en segundo plano (trabajadores / trabajos) y muchas otras cosas.

Si quiere entenderlo profundamente, le sugeriré algunos recursos. Soy un gran admirador de las publicaciones de Preethi. Aquí una serie de 3 partes :

  • Un manual para los recién llegados al desarrollo web
  • Modelo cliente-servidor y estructura de una aplicación web
  • HTTP y REST

La arquitectura MVC y Rails Routes

Ahora que entendemos cómo funciona la Web, estudiaremos la arquitectura MVC y Rails Routes.

MVC son las siglas de Model, View y Controller.

En esta arquitectura, tenemos la “ separación de las preocupaciones ” entre Modelos, Vistas y Controladores. Cada parte tiene su propia responsabilidad. Profundicemos en cada parte.

Modelo

"Mantiene la relación entre el objeto y la base de datos y maneja la validación, asociación, transacciones"

Esto significa que el modelo mantendrá una relación extrema con la Base de Datos . Cada modelo (puede) representar una tabla de base de datos (en el caso de bases de datos SQL). Este objeto modelo gana capacidades (heredadas de ActiveRecord - clase Rails) para recuperar, guardar, editar y eliminar datos de la tabla de la base de datos. Usamos objetos de modelo como una capa entre nuestra aplicación y la base de datos.

Además de esa relación con la base de datos, el modelo puede crear validaciones y asociaciones entre modelos.

Ver

"Una presentación de datos en un formato particular, provocada por la decisión de un controlador de presentar los datos".

Esta es la presentación de la respuesta de la solicitud . Esta presentación puede tener varios tipos de formato: PDF, HTML, JSON , etc. El resultado final de una vista probablemente será la interfaz de usuario (IU): parte del "Cliente".

Para la mayoría de las páginas de la web, las vistas serán en formato HTML con CSS y JS. Pero también podemos implementar archivos PDF del comportamiento del usuario en un producto digital de viajes para mostrar a todos los empleados cómo la gente usa su sitio web.

Controlador

"La instalación dentro de la aplicación que dirige el tráfico, por un lado, consulta los modelos para obtener datos específicos y, por otro lado, organiza esos datos (búsqueda, clasificación) en una forma que se ajuste a las necesidades de una vista determinada".

El controlador es el "Maestro". Se encarga del flujo: usa modelos para realizar consultas, analiza datos y toma decisiones sobre en qué formato presentará los datos.

MVC & Routes ciclo en una aplicación Rails

Así que imagina que trabajamos en una Travel Startup. Parte del producto es presentar una lista de excelentes artículos sobre historias de viajes y consejos para los viajeros.

Piensa desde la perspectiva del viajero. Vas www.worldpackers.com/articlesy ves una hermosa página con una lista de excelentes artículos.

Cuando escribe esta URL en el navegador, realiza una solicitud al servidor. En el servidor tenemos la aplicación web Rails. Rails Router verifica si hay una entrada que coincida con la URL solicitada.

Solo necesitamos configurar las rutas para esta línea:

Esto creará rutas RESTful para artículos. Si ejecutamos bundle exec rake routes, mostrará la lista de rutas creadas.

El verbo HTTP puede ser GET, POST, PATCH, PUT, o DELETE. Y sabemos cómo Rails mapea cada uno PATHa la derecha controllery action. Leer más aquí.

En nuestro caso, el servidor recibirá la /articlesruta y GETcomo verbo HTTP. Se mapeará ArticlesControllery actuará index.

En el controladorArticlesController usamos el modeloArticle para obtener todos los artículos en la base de datos y representar la vistaindex.html.erb como la respuesta del servidor (la interfaz de usuario).

Por convención, este controlador renderizará la vista en formato views/articles/index.html.erb. Básicamente, es un archivo HTML simple impulsado por Ruby.

El ciclo de solicitud-respuesta de Rails es uno de los primeros conceptos que debe comprender cuando comienza a aprender desarrollo web.

El usuario hace cosas (solicitud al servidor), la aplicación Rails tiene el enrutador para mapear la ruta URL al controlador correcto. En el controlador, podemos hacer todas las cosas con un modelo (o más de un modelo), es decir, obtener, guardar, editar, eliminar datos y representar una vista para el usuario.

¡Eso es todo!

Aprendimos mucho aquí. Espero que aprecien el contenido y aprendan más sobre cómo funcionan la arquitectura y el enrutamiento MVC en Rails.

Este es un paso más en mi viaje para aprender y dominar Rails y el desarrollo web. Puede ver la documentación de mi viaje completo aquí en mi publicación Renaissance Developer .

Si desea un curso completo de Ruby y Rails, aprenda habilidades de codificación del mundo real y cree proyectos, pruebe One Month Ruby Bootcampy Rails Bootcamp . Nos vemos allí ☺

Diviértete y sigue aprendiendo y codificando.

Mi Twitter y Github. ☺