Desarrollo Web para principiantes

Desarrollo Web para principiantes

En esta seguidilla de artículos te enseñaré a como desarrollar un Back-end completo utilizando tecnologías como Node.JS, express, MongoDB, Mongoose, entre otras.

Antes de  empezar este “curso” sobre el Back-end, repasemos algunas nociones sobre Desarrollo Web, ¿les parece?  ¡Comencemos!

¿Qué es el desarrollo web?

El desarrollo de páginas web, como su nombre bien lo dice, consiste en la creación de sitios web para  internet y, actualmente, es una de las disciplinas mejor remuneradas a nivel mundial. Esta rama de la programación comprende desde la creación de páginas estáticas simples que solo contengan texto hasta aplicaciones web complejas como e-commerce, redes sociales, etc.

¿Cómo funciona una página web?

Las páginas web comúnmente se separan en 2 grandes tópicos. Por un lado encontramos a el Front-end, el cual se encarga de mostrar un producto al cliente, y por otro lado el Back-end, el cual cumple la función de proveer información al Front- end comunicándose con una base de datos.

A modo de explicación, pondré un ejemplo de un restaurante para explicar de forma muy sencilla y resumida estos 2 nuevos conceptos que acabo de introducir.

En este caso, el restaurante sería la página web, mientras que  el comensal sería el usuario que entra a la misma.

1. El cliente (usuario) entra al restaurante. Ni bien se siente en la mesa que se le sea asignada, un mesero (Front-end) se encargará de mostrarle el menú (contenido de página web) para que el cliente pueda hacer su pedido.

2. Una vez que el mesero reciba la petición (*request) que le haya hecho el usuario, este le comunicará a el cocinero (Back-end) lo que el cliente quiere.

3. Una vez hecha la petición, el cocinero la preparará utilizando los ingredientes necesarios (*Base de datos), a fin de cumplir con lo que el cliente quiere.

4.  Cuando el pedido ya esté listo, el cocinero lo entrega al mesero (*response) y éste se encarga de llevarlo al cliente y así satisfacer lo que éste quiso.

Todo este proceso de petición, preparación y entrega en un restaurante llevaría mucho tiempo, ¡pero en una página web tomaría tan solo unos milisegundos! Obviamente, este tiempo puede depender de cuán bien esté hecha la página, la conexión del cliente y la calidad de su dispositivo.

Luego de esta explicación un tanto ilustrativa de cómo funciona una página web, me gustaría explicar por encima los conceptos de Front-end y Back-end, introducidos en el ejemplo anterior.

¿Qué es el Front-end y el Back-end?

Para entender qué es el Front-end y Back-end primero debemos familiarizarnos  con la arquitectura cliente/servidor, misma en  la que está basada la web. Consiste en que el cliente y el servidor son dos “computadoras”, el cliente es quien pide información y el servidor es el encargado de entregarle esta información pedida, siempre y cuando el cliente tenga los permisos necesarios.

Esto quiere que decir que, cuando el cliente haga una *petición, el servidor debe validar si el cliente cumple con los requisitos para así completar la petición. Un ejemplo de esto es Netflix: el cliente debe tener una cuenta paga para acceder al contenido de la página y, en caso de no tenerla, el servidor le negaría el acceso a dicho contenido.

Ahora que sabemos cómo se maneja la web con esta arquitectura, espero que te hayas dado cuenta de que, cuando hablamos del cliente, en realidad hablamos del Front-end y cuando hablamos del servidor, estamos hablando del Back-end.

Lo que necesitamos para lograr una conexión entre Front y Back es una API, que básicamente y a resumidas cuentas es un conjunto de definiciones y protocolos que se usa para diseñar e integrar el software de las aplicaciones. Si no entendiste muy bien qué es una API, no te preocupes, en los próximos artículos hablaremos más sobre el tema.

Enfocándonos en Front-end, es un estilo de programación informática  en la codificación y creación de elementos y funciones de un sitio web que luego verá el usuario. Se asegura de que los aspectos visuales de un sitio web sean funcionales. Digamos que eres un desarrollador Front-end. Esto significa que tu trabajo es codificar y dar vida a los elementos visuales de un sitio web. Estarías más enfocado en lo que el usuario ve cuando visita un sitio web o una aplicación y querrás cerciorarte de que sea fácil interactuar con el sitio y que funcione sin problemas.

Y ya hablando específicamente del Back-end, éste permite que un sitio sea interactivo. Por ejemplo, supongamos que está ejecutándose un sitio web de redes sociales. Necesita un lugar accesible para almacenar toda la información de sus usuarios. Este centro de almacenamiento se denomina base de datos. Las bases de datos se ejecutan desde un servidor, que es esencialmente una computadora remota. Un desarrollador de Back-end ayudará a administrar esta base de datos, así como los contenidos del sitio almacenados en ella. Esto garantiza que los elementos Front-end del sitio web de redes sociales puedan seguir funcionando correctamente mientras los usuarios exploran el contenido cargado y otros perfiles de usuario.

Si bien los usuarios no interactúan directamente con el Back-end de un sitio web, sí lo hacen con los elementos en los que trabajan estos desarrolladores a través de una aplicación Front-end. El desarrollo de Back-end se ocupa del almacenamiento y la organización de los datos y, al mismo tiempo, garantiza que el Front-end funcione bien.

Hasta aquí llega esta breve introducción al desarrollo web y sus partes. Obviamente, el desarrollo web es mucho más amplio y, en este “curso” intentaré profundizar y abordar temas de una parte de esta disciplina, el desarrollo Back-end.

Glosario

*Base de datos: Centro de almacenamiento de información.

*Petición/request: Cliente solicitando recursos al servidor.

*Response: Respuesta que proporciona el servidor al cliente.

⚠️
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Revelo.

Revelo Content Network da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.