{"id":96,"date":"2023-06-05T11:19:29","date_gmt":"2023-06-05T16:19:29","guid":{"rendered":"https:\/\/georgethepenguin.dev\/?p=96"},"modified":"2023-06-15T14:33:41","modified_gmt":"2023-06-15T19:33:41","slug":"el-rol-del-desarrollador-back-end","status":"publish","type":"post","link":"https:\/\/georgethepenguin.dev\/index.php\/2023\/06\/05\/el-rol-del-desarrollador-back-end\/","title":{"rendered":"El Rol del Desarrollador Back-end"},"content":{"rendered":"\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-5.png\" alt=\"\" class=\"wp-image-98\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-5.png 800w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-5-300x169.png 300w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-5-768x432.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Bajo la bandera de &#8220;<strong><em>Devs Latam<\/em><\/strong>&#8220;, una iniciativa de la comunidad <strong><a href=\"https:\/\/linktr.ee\/trycatch.tv\" target=\"_blank\" rel=\"noreferrer noopener\">Try-Catch<\/a><\/strong>, tuve el placer de dirigir un Live en mi canal de <a href=\"https:\/\/www.twitch.tv\/george_the_penguin\" target=\"_blank\" rel=\"noreferrer noopener\">Twitch<\/a> el 21 de mayo de 2023. Esta actividad fue un esfuerzo voluntario, gratuito e independiente para compartir conocimientos sobre el papel del desarrollador back-end.<\/p>\n\n\n\n<p>En este art\u00edculo, brindo un repaso de las ideas clave que se debatieron durante la transmisi\u00f3n en vivo. Esta es una referencia \u00fatil tanto para los integrantes de la iniciativa de la comunidad como para cualquier persona interesada en profundizar en este rol tan crucial en el \u00e1mbito de la programaci\u00f3n.<\/p>\n\n\n\n<p>Te animo a seguirme en mis <a href=\"https:\/\/linktr.ee\/george_the_penguin\" target=\"_blank\" rel=\"noreferrer noopener\">plataformas sociales<\/a>, donde estar\u00e1s al tanto de mis futuros Lives. En estos eventos, profundizamos en cada tema, llevamos a cabo encuestas, cuestionarios, sesiones de preguntas y respuestas, creando un ambiente de aprendizaje m\u00e1s din\u00e1mico e interactivo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 hace un desarrollador back-end?<\/h2>\n\n\n\n<p>Un desarrollador back-end es el programador y\/o ingeniero que da vida a la magia digital de los sitios web y las aplicaciones. Imaginemos un sitio web como un coche: el desarrollador front-end es el artesano que modela la parte visible, es decir, la est\u00e9tica del coche, los asientos confortables, el volante. En contraposici\u00f3n, el desarrollador back-end es el maestro mec\u00e1nico que garantiza que el motor, la transmisi\u00f3n y los sistemas electr\u00f3nicos operen sin problemas. En t\u00e9rminos sencillos, se ocupa de la l\u00f3gica de la aplicaci\u00f3n, las bases de datos, las aplicaciones del servidor y todos los componentes internos que el usuario no puede ver, pero que son fundamentales para que el sitio web o la aplicaci\u00f3n operen de forma \u00f3ptima.<\/p>\n\n\n\n<p>El desarrollador back-end es el encargado de crear y mantener la tecnolog\u00eda necesaria que provee la l\u00f3gica de negocio necesaria para dar vida a la interfaz de usuario de un sitio web. Este papel exige habilidades de programaci\u00f3n avanzadas y un entendimiento profundo de c\u00f3mo transferir datos de un punto a otro. Al final del d\u00eda, el prop\u00f3sito de un desarrollador back-end es garantizar que todo en la &#8216;cocina&#8217; funcione sin interrupciones, ofreciendo a los usuarios una experiencia en l\u00ednea fluida y gratificante.<\/p>\n\n\n\n<p>Por lo tanto, algunas de las funciones principales de los desarrolladores back-end incluyen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Velar por el correcto funcionamiento del sitio web, con especial atenci\u00f3n a las bases de datos, la l\u00f3gica empresarial, la interfaz de programaci\u00f3n de aplicaciones (API), la arquitectura y los servidores.<\/li>\n\n\n\n<li>Desarrollar y mantener los sistemas que procesan los datos y ejecutan acciones en los sitios web.<\/li>\n\n\n\n<li>Trabajar en el almacenamiento de datos, la seguridad y otras funciones del lado del servidor que permanecen invisibles para el usuario.<\/li>\n\n\n\n<li>Asegurarse de que el back-end responda r\u00e1pidamente a las solicitudes de los usuarios del front-end.<\/li>\n<\/ul>\n\n\n\n<p>Aunque no est\u00e1 dentro de sus tareas habituales construir interfaces gr\u00e1ficas de usuario (GUI, por sus siglas en ingl\u00e9s), siendo un \u00e1rea m\u00e1s orientada hacia los desarrolladores front-end, como desarrolladores back-end no debemos excusarnos de aprender al menos los fundamentos de la programaci\u00f3n de GUI. Esto nos permitir\u00e1 ofrecer soporte a nuestros colegas front-end, y adicionalmente, nos permitir\u00e1 comprender mejor c\u00f3mo se utilizan nuestros servicios para poder dise\u00f1arlos de manera m\u00e1s eficaz.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tareas y Responsabilidades<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Construcci\u00f3n y mantenimiento de sitios web<\/strong>: Los desarrolladores back-end juegan un papel crucial en la formaci\u00f3n y funcionalidad de un sitio web. Sus responsabilidades pueden abarcar desde el dise\u00f1o y configuraci\u00f3n de bases de datos hasta la elaboraci\u00f3n de scripts de servidor y la integraci\u00f3n del sitio web con diversas redes o servicios.<\/li>\n\n\n\n<li><strong>Generaci\u00f3n de c\u00f3digo de calidad superior<\/strong>: El eje central del trabajo de un desarrollador back-end es la creaci\u00f3n de c\u00f3digo que posibilita las funcionalidades de un sitio web o una aplicaci\u00f3n, garantizando que este sea eficaz, reutilizable y comprensible para otros desarrolladores.<\/li>\n\n\n\n<li><strong>Realizaci\u00f3n de pruebas para asegurar la calidad<\/strong>: Tambi\u00e9n es responsabilidad del desarrollador back-end probar su c\u00f3digo para confirmar que todo funciona como se espera. Esto puede requerir la detecci\u00f3n y correcci\u00f3n de errores, la ejecuci\u00f3n de pruebas de estr\u00e9s y la comprobaci\u00f3n de que el c\u00f3digo cumple con los est\u00e1ndares de la industria.<\/li>\n\n\n\n<li><strong>Evaluaci\u00f3n de la eficacia y velocidad<\/strong>: Los desarrolladores back-end frecuentemente deben revisar su c\u00f3digo para confirmar que se ejecuta de forma eficiente. Esto puede implicar el ajuste de las bases de datos o la reescritura de ciertas partes del c\u00f3digo para mejorar su velocidad.<\/li>\n\n\n\n<li><strong>Desarrollo de procesos en segundo plano<\/strong>: Los procesos en segundo plano son aquellas tareas que se llevan a cabo en el sistema sin interferir con la interfaz del usuario. Los desarrolladores back-end pueden crear y gestionar estos procesos para realizar tareas como la actualizaci\u00f3n de datos o el mantenimiento del servidor.<\/li>\n\n\n\n<li><strong>Integraci\u00f3n de sistemas<\/strong>: Los desarrolladores back-end a menudo deben vincular el sitio web o la aplicaci\u00f3n con otros sistemas, como bases de datos externas, servidores de correo electr\u00f3nico o servicios de terceros.<\/li>\n\n\n\n<li><strong>Implementaci\u00f3n de sistemas de cola y mensajer\u00eda<\/strong>: En algunas situaciones, los desarrolladores back-end pueden tener que desarrollar sistemas que faciliten el env\u00edo de mensajes o la gesti\u00f3n de tareas en cola. Esto puede ser \u00fatil para manejar solicitudes de los usuarios, enviar notificaciones o distribuir la carga de trabajo en el servidor.<\/li>\n\n\n\n<li><strong>Resoluci\u00f3n de problemas y depuraci\u00f3n<\/strong>: Cuando surgen problemas, a menudo recae en el desarrollador back-end la tarea de encontrar y corregir el problema. Esto puede implicar la depuraci\u00f3n del c\u00f3digo, la identificaci\u00f3n y resoluci\u00f3n de problemas en la base de datos, o la soluci\u00f3n de problemas con el servidor.<\/li>\n\n\n\n<li><strong>Formaci\u00f3n y soporte<\/strong>: En algunas ocasiones, los desarrolladores back-end tambi\u00e9n pueden tener que formar a otros miembros del equipo sobre c\u00f3mo utilizar el sistema o brindar soporte cuando surgen problemas. Esto puede implicar la elaboraci\u00f3n de documentaci\u00f3n, la formaci\u00f3n de usuarios o la asistencia con problemas t\u00e9cnicos.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Habilidades T\u00e9cnicas<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Lenguajes de Programaci\u00f3n<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-6.png\" alt=\"\" class=\"wp-image-101\" width=\"466\" height=\"370\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-6.png 621w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-6-300x238.png 300w\" sizes=\"auto, (max-width: 466px) 100vw, 466px\" \/><\/figure>\n\n\n\n<p>En el terreno del desarrollo back-end, hay una variedad de lenguajes de programaci\u00f3n que los desarrolladores emplean para construir la l\u00f3gica y las funcionalidades detr\u00e1s de los sitios web y las aplicaciones. Cada uno de estos lenguajes tiene sus propias ventajas, y la elecci\u00f3n de uno sobre otro depende en gran medida del proyecto espec\u00edfico. Cada uno de estos lenguajes desempe\u00f1a un papel esencial en la creaci\u00f3n de la web y las aplicaciones que utilizamos todos los d\u00edas.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Lenguaje<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Java<\/strong><\/td><td>Java es el principal lenguaje para el back-end en sistemas empresariales. Es un lenguaje de programaci\u00f3n de prop\u00f3sito general, orientado a objetos, que es a la vez port\u00e1til y robusto. Aunque su sintaxis es similar a la de C++, es m\u00e1s f\u00e1cil de manejar y ayuda a evitar errores comunes. Dado que se ejecuta en una m\u00e1quina virtual, es f\u00e1cilmente port\u00e1til entre plataformas. La m\u00e1quina virtual de Java (JVM, por sus siglas en ingl\u00e9s) tambi\u00e9n es compatible con otros lenguajes como <em>Kotlin<\/em>, <em>Scala<\/em> y <em>Groovy<\/em>.<\/td><td><a href=\"https:\/\/dev.java\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dev.java\/<\/a><br><a href=\"https:\/\/kotlinlang.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/kotlinlang.org\/<\/a><br><a href=\"https:\/\/www.scala-lang.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.scala-lang.org\/<\/a><br><a href=\"https:\/\/groovy-lang.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/groovy-lang.org\/<\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Python<\/strong><\/td><td>Python es un lenguaje de programaci\u00f3n de alto nivel extremadamente legible, reconocido por su simplicidad y sintaxis clara. Python es ampliamente utilizado en ciencia de datos, desarrollo web y automatizaci\u00f3n.<\/td><td><a href=\"https:\/\/www.python.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.python.org\/<\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>C#<\/strong><\/td><td>C# es el principal lenguaje de programaci\u00f3n orientado a objetos desarrollado por Microsoft, y se utiliza com\u00fanmente en el desarrollo de videojuegos y aplicaciones de Windows. El entorno .NET en el que se ejecuta tambi\u00e9n es compatible con otros lenguajes como <em>Visual Basic<\/em> y <em>F#<\/em>.<\/td><td><a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/csharp\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/learn.microsoft.com\/en-us\/dotnet\/csharp\/<\/a><br><a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/visual-basic\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/learn.microsoft.com\/en-us\/dotnet\/visual-basic\/<\/a><br><a href=\"https:\/\/fsharp.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/fsharp.org\/<\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Go<\/strong><\/td><td>Go, tambi\u00e9n conocido como Golang, es un lenguaje de programaci\u00f3n de sistemas de c\u00f3digo abierto desarrollado por Google. Es famoso por su simplicidad y eficiencia.<\/td><td><a href=\"https:\/\/go.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/go.dev\/<\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>PHP<\/strong><\/td><td>PHP es un lenguaje de scripting del lado del servidor dise\u00f1ado especialmente para el desarrollo web. Es com\u00fanmente utilizado en sitios web din\u00e1micos y sistemas de gesti\u00f3n de contenidos.<\/td><td><a href=\"https:\/\/www.php.net\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.php.net\/<\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Ruby<\/strong><\/td><td>Ruby es un lenguaje de programaci\u00f3n de alto nivel que se centra en la simplicidad y la productividad. Es popular en el desarrollo web.<\/td><td><a href=\"https:\/\/www.ruby-lang.org\/en\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.ruby-lang.org\/en\/<\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Rust<\/strong><\/td><td>Rust es un lenguaje de programaci\u00f3n de sistemas que se centra en la seguridad, especialmente en lo que respecta a la seguridad de la memoria. Es reconocido por permitir a los desarrolladores escribir c\u00f3digo seguro sin sacrificar rendimiento.<\/td><td><a href=\"https:\/\/www.rust-lang.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.rust-lang.org\/<\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>C++<\/strong><\/td><td>Lenguaje de programaci\u00f3n de prop\u00f3sito general que extiende el lenguaje C para incluir caracter\u00edsticas como la programaci\u00f3n orientada a objetos. Es com\u00fanmente utilizado en el desarrollo de software de rendimiento cr\u00edtico, como videojuegos o software de sistema.<\/td><td><a href=\"https:\/\/isocpp.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/isocpp.org\/<\/a><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><strong>Javascript<\/strong><\/td><td>JavaScript, originalmente dise\u00f1ado para hacer que las p\u00e1ginas web fueran m\u00e1s interactivas desde el lado del cliente, este lenguaje tambi\u00e9n ha evolucionado para ser utilizado en el lado del servidor. Es un componente fundamental de la web moderna.<\/td><td><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales lenguajes de programaci\u00f3n utilizados en el back-end.<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Frameworks<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-7.png\" alt=\"\" class=\"wp-image-102\" width=\"527\" height=\"373\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-7.png 702w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-7-300x212.png 300w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" \/><\/figure>\n\n\n\n<p>Los frameworks son conjuntos de bibliotecas y herramientas preestablecidas que agilizan el proceso de construir la l\u00f3gica y estructura que sustentan una aplicaci\u00f3n web o m\u00f3vil, haci\u00e9ndose cargo de tareas recurrentes como la administraci\u00f3n de bases de datos, autenticaci\u00f3n de usuarios, configuraci\u00f3n del servidor y el manejo de peticiones y respuestas HTTP. A continuaci\u00f3n, presentamos un compendio de algunos de los frameworks m\u00e1s prominentes que se utilizan hoy en d\u00eda para desarrollar aplicaciones back-end.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Lenguaje<\/strong><\/td><td><strong>Framework<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td>Java<\/td><td><strong>Spring Boot<\/strong>,  <strong>Micronaut<\/strong> y <strong>Quarkus<\/strong><\/td><td>Spring Boot se ha establecido como el framework de Java m\u00e1s prominente en la actualidad, aligerando la configuraci\u00f3n y el despliegue de aplicaciones Spring mediante un enfoque de convenci\u00f3n por encima de configuraci\u00f3n.<br><br>Micronaut es un framework contempor\u00e1neo de Java orientado a la construcci\u00f3n de aplicaciones modulares, f\u00e1ciles de probar y basadas en microservicios.<br><br>Quarkus es un framework de c\u00f3digo abierto en Java, creado con el prop\u00f3sito de desarrollar aplicaciones nativas para Kubernetes y orientadas a la nube. Pone especial \u00e9nfasis en la eficacia y el rendimiento.<\/td><td><a href=\"https:\/\/spring.io\/projects\/spring-boot\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/spring.io\/projects\/spring-boot<\/a><br><a href=\"https:\/\/micronaut.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/micronaut.io\/<\/a><br><a href=\"https:\/\/quarkus.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/quarkus.io\/<\/a><\/td><\/tr><tr><td>Python<\/td><td><strong>Django<\/strong><\/td><td>Django es un framework de alto calibre para Python, enfocado en agilizar el desarrollo de aplicaciones web mediante la reutilizaci\u00f3n de componentes y facilitando la conexi\u00f3n con bases de datos.<\/td><td><a href=\"https:\/\/www.djangoproject.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.djangoproject.com\/<\/a><\/td><\/tr><tr><td>C#<\/td><td><strong>ASP.NET<\/strong><\/td><td>ASP.NET es un framework de Microsoft que viabiliza el desarrollo de aplicaciones web contempor\u00e1neas utilizando C#. Es reconocido por su capacidad de integraci\u00f3n con otras tecnolog\u00edas de Microsoft.<\/td><td><a href=\"https:\/\/dotnet.microsoft.com\/es-es\/apps\/aspnet\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dotnet.microsoft.com\/es-es\/apps\/aspnet<\/a><\/td><\/tr><tr><td>Go<\/td><td><strong>Gin<\/strong><\/td><td>Es un framework web en Go, c\u00e9lebre por su velocidad y por tener una API reducida pero eficaz. Facilita la elaboraci\u00f3n de aplicaciones web utilizando Go.<\/td><td><a href=\"https:\/\/gin-gonic.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/gin-gonic.com\/<\/a><\/td><\/tr><tr><td>PHP<\/td><td><strong>Laravel<\/strong><\/td><td>Laravel es un framework ampliamente utilizado de PHP que simplifica tareas habituales en el desarrollo web, como la autenticaci\u00f3n de usuarios, administraci\u00f3n de sesiones y enrutamiento.<\/td><td><a href=\"https:\/\/laravel.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/laravel.com\/<\/a><\/td><\/tr><tr><td>Ruby<\/td><td><strong>Ruby on Rails<\/strong> <\/td><td>Ruby on Rails, a menudo abreviado como Rails, es un framework de Ruby que emplea el patr\u00f3n de dise\u00f1o Modelo-Vista-Controlador (MVC). Es famoso por su enfoque en la convenci\u00f3n sobre configuraci\u00f3n y su facilidad de uso.<\/td><td><a href=\"https:\/\/rubyonrails.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/rubyonrails.org\/<\/a><\/td><\/tr><tr><td>Rust<\/td><td><strong>Actix<\/strong><\/td><td>Es un framework \u00e1gil y atractivo en Rust que ofrece un conjunto de caracter\u00edsticas para el desarrollo de aplicaciones web y servicios RESTful.<\/td><td><a href=\"https:\/\/actix.rs\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/actix.rs\/<\/a><\/td><\/tr><tr><td>C++<\/td><td><strong>Wt<\/strong><\/td><td>Wt es un framework en C++ destinado al desarrollo de aplicaciones web, que incluye widgets y herramientas avanzadas para la creaci\u00f3n de interfaces de usuario interactivas.<\/td><td><a href=\"https:\/\/www.webtoolkit.eu\/wt\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.webtoolkit.eu\/wt<\/a><\/td><\/tr><tr><td>JavaScript<\/td><td><strong>Express.js<\/strong><\/td><td>Express.js es un framework liviano para Node.js que dispone de un conjunto de caracter\u00edsticas s\u00f3lidas para aplicaciones web y m\u00f3viles, permitiendo el desarrollo de back-end utilizando JavaScript.<\/td><td><a href=\"https:\/\/expressjs.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/expressjs.com\/<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales frameworks por lenguaje de programaci\u00f3n utilizados en el back-end.<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Bases de Datos<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-8.png\" alt=\"\" class=\"wp-image-103\" width=\"623\" height=\"369\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-8.png 831w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-8-300x178.png 300w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-8-768x455.png 768w\" sizes=\"auto, (max-width: 623px) 100vw, 623px\" \/><\/figure>\n\n\n\n<p>Las bases de datos son compilaciones estructuradas de informaci\u00f3n que se almacenan y se acceden desde un sistema inform\u00e1tico con fines de consulta, modificaci\u00f3n y estudio. Hay dos categor\u00edas fundamentales de bases de datos con las que un desarrollador back-end necesita trabajar:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Relacionales<\/h4>\n\n\n\n<p>Las bases de datos relacionales almacenan datos en un formato tabular, con filas y columnas, bas\u00e1ndose en relaciones establecidas, como claves primarias y secundarias. Su lenguaje est\u00e1ndar es SQL.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Motor de base de datos<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>PostrgeSQL<\/strong><\/td><td>PostgreSQL es una base de datos relacional de c\u00f3digo abierto muy apreciada por su confiabilidad, integridad de datos y precisi\u00f3n. Admite SQL completo y varias caracter\u00edsticas avanzadas.<\/td><td><a href=\"https:\/\/www.postgresql.org\/\">https:\/\/www.postgresql.org\/<\/a><\/td><\/tr><tr><td><strong>MySQL<\/strong><\/td><td>MySQL es una de las bases de datos relacionales de c\u00f3digo abierto m\u00e1s extendidas, apreciada por su simplicidad y rendimiento. Hay una variante llamada MariaDB, un derivado de MySQL desarrollado por los creadores originales de MySQL, que conserva la compatibilidad con MySQL e introduce funcionalidades nuevas.<\/td><td><a href=\"https:\/\/www.mysql.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.mysql.com\/<\/a><br><a href=\"https:\/\/mariadb.org\/\">https:\/\/mariadb.org\/<\/a><\/td><\/tr><tr><td><strong>Oracle<\/strong><\/td><td>Oracle es una base de datos relacional comercial de alto rendimiento muy extendida en el \u00e1mbito empresarial. Proporciona una amplia variedad de caracter\u00edsticas y opciones para la administraci\u00f3n de datos.<\/td><td><a href=\"https:\/\/www.oracle.com\/co\/database\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.oracle.com\/co\/database\/<\/a><\/td><\/tr><tr><td><strong>SQL Server<\/strong><\/td><td>Microsoft SQL Server es un sistema de gesti\u00f3n de bases de datos relacionales creado por Microsoft. Es famoso por su integraci\u00f3n con otros productos de Microsoft y es com\u00fanmente utilizado en entornos empresariales.<\/td><td><a href=\"https:\/\/www.microsoft.com\/es-mx\/sql-server\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.microsoft.com\/es-mx\/sql-server<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales bases de datos relacionales utilizadas en el back-end.<\/em><\/figcaption><\/figure>\n\n\n\n<p>Las bases de datos no relacionales, tambi\u00e9n denominadas NoSQL, gestionan estructuras de datos m\u00e1s flexibles como documentos, grafos o pares clave-valor. A diferencia de las bases de datos relacionales, no existe un lenguaje est\u00e1ndar para interactuar con ellas; cada base de datos tiene su propio lenguaje.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Motor de base de datos<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>Lenguaje<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>MongoDB<\/strong><\/td><td>MongoDB es una base de datos NoSQL de c\u00f3digo abierto que emplea un modelo de datos de tipo documento, lo que facilita el almacenamiento y la manipulaci\u00f3n de datos semi-estructurados.<\/td><td><em><a href=\"https:\/\/www.mongodb.com\/docs\/manual\/tutorial\/query-documents\/\">MongoDB Query Languaje<\/a> (Javascript)<\/em><\/td><td><a href=\"https:\/\/www.mongodb.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.mongodb.com\/<\/a><\/td><\/tr><tr><td><strong>Apache Cassandra<\/strong><\/td><td>Cassandra es un sistema de base de datos NoSQL de c\u00f3digo abierto dise\u00f1ado para manejar grandes vol\u00famenes de datos distribuidos en numerosos nodos. Es famoso por su escalabilidad y alta disponibilidad.<\/td><td><em><a href=\"https:\/\/cassandra.apache.org\/doc\/latest\/cassandra\/cql\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cassandra Query Language<\/a><\/em><\/td><td><a href=\"https:\/\/cassandra.apache.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/cassandra.apache.org\/<\/a><\/td><\/tr><tr><td><strong>Redis<\/strong><\/td><td>Redis es una base de datos en memoria de c\u00f3digo abierto utilizada como cach\u00e9 y gestor de mensajes. Es famosa por su alta velocidad y su soporte para estructuras de datos en memoria.<\/td><td><em><a href=\"https:\/\/redis.io\/commands\/\" target=\"_blank\" rel=\"noreferrer noopener\">Conjunto de instrucciones de Redis<\/a><\/em><\/td><td><a href=\"https:\/\/redis.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/redis.com\/<\/a><\/td><\/tr><tr><td><strong>Neo4J<\/strong><\/td><td>Neo4j es una base de datos gr\u00e1fica de c\u00f3digo abierto que se emplea para almacenar y consultar datos relacionados en formato de gr\u00e1ficos, lo que resulta ideal para modelar datos altamente interconectados.<\/td><td><em><a href=\"https:\/\/neo4j.com\/docs\/cypher-manual\/current\/introduction\/\" target=\"_blank\" rel=\"noreferrer noopener\">Cypher<\/a><\/em><\/td><td><a href=\"https:\/\/neo4j.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/neo4j.com\/<\/a><\/td><\/tr><tr><td><strong>AWS DynamoDB<\/strong><\/td><td>DynamoDB es un servicio de base de datos NoSQL totalmente gestionado ofrecido por Amazon Web Services. Es famoso por su escalabilidad y rendimiento, y se utiliza com\u00fanmente en aplicaciones de gran envergadura.<\/td><td><em><a href=\"https:\/\/partiql.org\/\" data-type=\"URL\" data-id=\"https:\/\/partiql.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">PartiQL<\/a><\/em><\/td><td><a href=\"https:\/\/aws.amazon.com\/es\/dynamodb\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/aws.amazon.com\/es\/dynamodb\/<\/a><\/td><\/tr><tr><td><strong>GCP Datastore<\/strong><\/td><td>Cloud Datastore es un servicio de base de datos NoSQL altamente escalable para aplicaciones web y m\u00f3viles en la plataforma de Google Cloud. Ofrece consistencia autom\u00e1tica, transacciones y una interfaz de consulta similar a SQL.<\/td><td><em><a href=\"https:\/\/cloud.google.com\/datastore\/docs\/concepts\/queries?hl=es-419\" target=\"_blank\" rel=\"noreferrer noopener\">Datastore Query<\/a><\/em><\/td><td><a href=\"https:\/\/cloud.google.com\/datastore\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/cloud.google.com\/datastore<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales bases de datos no relacionales utilizadas en el back-end.<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Servidores de Aplicaci\u00f3n<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-9.png\" alt=\"\" class=\"wp-image-104\" width=\"514\" height=\"341\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-9.png 685w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-9-300x199.png 300w\" sizes=\"auto, (max-width: 514px) 100vw, 514px\" \/><\/figure>\n\n\n\n<p>Un servidor de aplicaciones es un componente en una arquitectura de software que facilita un entorno en el que se pueden operar y administrar aplicaciones, asumiendo la responsabilidad de la l\u00f3gica de negocio y gestionando las interacciones entre el usuario y las bases de datos back-end.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Servidor<\/strong><\/td><td><strong>Lenguaje\/Entorno<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>Tomcat<\/strong><\/td><td>Java<\/td><td>Tomcat es un servidor de aplicaciones de Apache de c\u00f3digo abierto, utilizado para implementar y ofrecer aplicaciones web basadas en Java.<\/td><td><a href=\"https:\/\/tomcat.apache.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/tomcat.apache.org\/<\/a><\/td><\/tr><tr><td><strong>Jetty<\/strong><\/td><td>Java<\/td><td>Jetty es un servidor web de c\u00f3digo abierto y un contenedor de servlets HTTP que es ligero y adaptable, que se puede integrar en aplicaciones y frameworks.<\/td><td><a href=\"https:\/\/www.eclipse.org\/jetty\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.eclipse.org\/jetty\/<\/a><\/td><\/tr><tr><td><strong>JBoss WildFly<\/strong><\/td><td>Java<\/td><td>Wildfly es un servidor de aplicaciones para Java de c\u00f3digo abierto. Proporciona una plataforma adaptable para el despliegue de aplicaciones de negocio.<\/td><td><a href=\"https:\/\/www.wildfly.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.wildfly.org\/<\/a><\/td><\/tr><tr><td><strong>WebSphere<\/strong><\/td><td>Java<\/td><td>WebSphere es un producto de software de IBM que opera como un servidor de aplicaciones Java EE. Se emplea predominantemente en ambientes empresariales para crear y administrar aplicaciones y servicios web.<\/td><td><a href=\"https:\/\/www.ibm.com\/products\/websphere-application-server\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.ibm.com<\/a><\/td><\/tr><tr><td><strong>Payara<\/strong><\/td><td>Java<\/td><td>Payara es un servidor de aplicaciones de c\u00f3digo abierto que es un derivado de GlassFish, dise\u00f1ado para ser compacto, resistente y escalable.<\/td><td><a href=\"https:\/\/www.payara.fish\/products\/payara-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.payara.fish<\/a><\/td><\/tr><tr><td><strong>Geronimo<\/strong><\/td><td>Java<\/td><td>Geronimo es un servidor de aplicaciones Java de c\u00f3digo abierto desarrollado por Apache. Es totalmente compatible con la especificaci\u00f3n Java EE.<\/td><td><a href=\"https:\/\/geronimo.apache.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/geronimo.apache.org\/<\/a><\/td><\/tr><tr><td><strong>Glassfish<\/strong><\/td><td>Java<\/td><td>GlassFish es el servidor de aplicaciones Java EE de c\u00f3digo abierto de referencia de Oracle, reconocido por su escalabilidad y su gama de funcionalidades.<\/td><td><a href=\"https:\/\/www.oracle.com\/middleware\/technologies\/glassfish-server.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.oracle.com<\/a><\/td><\/tr><tr><td><strong>WebLogic<\/strong><\/td><td>Java<\/td><td>WebLogic es un servidor de aplicaciones Java EE de Oracle que se emplea para construir y desplegar aplicaciones de negocio.<\/td><td><a href=\"https:\/\/www.oracle.com\/java\/weblogic\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.oracle.com\/java\/weblogic\/<\/a><\/td><\/tr><tr><td><strong>Microsoft IIS<\/strong><\/td><td>.net<\/td><td>Internet Information Services (IIS) es un servidor web seguro y expandible desarrollado por Microsoft para su uso con Windows.<\/td><td><a href=\"https:\/\/www.iis.net\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.iis.net\/<\/a><\/td><\/tr><tr><td><strong>Apache HTTP Server<\/strong><\/td><td>C++, PHP<\/td><td>Apache es el servidor web HTTP de c\u00f3digo abierto m\u00e1s ampliamente utilizado en el mundo. Es apreciado por su rendimiento, estabilidad y baja frecuencia de fallos.<\/td><td><a href=\"https:\/\/httpd.apache.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/httpd.apache.org\/<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales servidores de aplicaci\u00f3n utilizados en el back-end.<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Contenedores<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-10.png\" alt=\"\" class=\"wp-image-105\" width=\"478\" height=\"374\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-10.png 637w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-10-300x235.png 300w\" sizes=\"auto, (max-width: 478px) 100vw, 478px\" \/><\/figure>\n\n\n\n<p>Un contenedor es una unidad estandarizada de software que agrupa el c\u00f3digo y todas sus dependencias para asegurar que la aplicaci\u00f3n se ejecute de forma eficiente y fiable en diferentes entornos inform\u00e1ticos. Proporcionan aislamiento a nivel de sistema operativo y son m\u00e1s eficientes que las m\u00e1quinas virtuales convencionales.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Servicio de contenedores<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>Docker<\/strong><\/td><td>Docker es una plataforma de c\u00f3digo abierto que simplifica la creaci\u00f3n, despliegue y operaci\u00f3n de aplicaciones en contenedores, los cuales son entornos seguros y transportables.<\/td><td><a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.docker.com\/<\/a><\/td><\/tr><tr><td><strong>Podman<\/strong><\/td><td>Podman es una alternativa de c\u00f3digo abierto a Docker que posibilita la administraci\u00f3n de contenedores y pods sin requerir un daemon.<\/td><td><a href=\"https:\/\/podman.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/podman.io\/<\/a><\/td><\/tr><tr><td><strong>LXC<\/strong><\/td><td>Linux Containers (LXC) es una soluci\u00f3n de virtualizaci\u00f3n a nivel de sistema operativo que facilita la operaci\u00f3n de m\u00faltiples versiones aisladas de Linux en una sola m\u00e1quina host.<\/td><td><a href=\"https:\/\/linuxcontainers.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/linuxcontainers.org\/<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales servicios de contenedores utilizados en el back-end.<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Sistemas Operativos<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-11.png\" alt=\"\" class=\"wp-image-106\" width=\"492\" height=\"381\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-11.png 656w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-11-300x232.png 300w\" sizes=\"auto, (max-width: 492px) 100vw, 492px\" \/><\/figure>\n\n\n\n<p>Los sistemas operativos son el software clave que administra los recursos de hardware y software de un ordenador, ofreciendo una serie de servicios para los programas del ordenador, gestionando y coordinando el uso del hardware entre las distintas aplicaciones y los usuarios.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Sistema Operativo<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>Linux<\/strong><\/td><td>Linux es un sistema operativo de c\u00f3digo abierto basado en Unix, ampliamente utilizado en servidores y sistemas integrados por su estabilidad y adaptabilidad.<\/td><td><a href=\"https:\/\/www.linux.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.linux.org\/<\/a><\/td><\/tr><tr><td><strong>Windows<\/strong><\/td><td>Windows es un sistema operativo con una interfaz gr\u00e1fica de usuario desarrollado por Microsoft. Se emplea tanto en sistemas personales como en servidores, y es conocido por su facilidad de uso e integraci\u00f3n con otros productos de Microsoft.<\/td><td><a href=\"https:\/\/edge.dev.im.microsoft.com\/en-us\/windows\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/microsoft.com\/en-us\/windows<\/a><\/td><\/tr><tr><td><strong>macOS<\/strong><\/td><td>macOS es el sistema operativo de los ordenadores Macintosh de Apple. Aunque no se utiliza tanto como Linux o Windows en servidores, su intuitiva interfaz gr\u00e1fica de usuario y su base Unix lo hacen popular entre los desarrolladores.<\/td><td><a href=\"https:\/\/www.apple.com\/macos\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.apple.com\/macos<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales sistemas operativos utilizados en el back-end.<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Infraestructura<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-12.png\" alt=\"\" class=\"wp-image-107\" width=\"650\" height=\"341\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-12.png 867w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-12-300x157.png 300w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-12-768x403.png 768w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/figure>\n\n\n\n<p>La infraestructura se refiere al conjunto de componentes de hardware y software que soportan y posibilitan el funcionamiento de las aplicaciones y servicios de una organizaci\u00f3n. Actualmente, la infraestructura en la que se ejecutan las aplicaciones back-end incluye:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Infraestructura en local (On-Premise)<\/strong>: Esta infraestructura incluye los servidores, hardware, software y otros sistemas de TI que se almacenan y administran f\u00edsicamente en las instalaciones de una organizaci\u00f3n. Esto significa que la organizaci\u00f3n es responsable de la mantenimiento, seguridad y gesti\u00f3n de su infraestructura de TI.<\/li>\n\n\n\n<li><strong>Infraestructura en la nube (Cloud)<\/strong>: A diferencia de la infraestructura en local, la infraestructura en la nube se refiere al uso de servicios de TI a trav\u00e9s de internet. Los recursos inform\u00e1ticos, como los servidores, el almacenamiento y las bases de datos, est\u00e1n alojados en la nube (servidores remotos) y son administrados por un proveedor de servicios en la nube. Los clientes pueden acceder a estos recursos y servicios a trav\u00e9s de internet, pagando \u00fanicamente por lo que utilizan. A continuaci\u00f3n, una lista de los entornos de infraestructura en la nube m\u00e1s utilizados:<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Entorno Cloud<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>Amazon Web Services<\/strong><\/td><td>AWS es la plataforma de servicios en la nube m\u00e1s extendida y completa, ofreciendo m\u00e1s de 200 servicios desde centros de datos alrededor del mundo. AWS proporciona una variedad de servicios para computaci\u00f3n, almacenamiento, bases de datos, an\u00e1lisis, redes, desarrollo m\u00f3vil, herramientas para desarrolladores, herramientas de gesti\u00f3n, IoT, seguridad y aplicaciones empresariales.<\/td><td><a href=\"https:\/\/aws.amazon.com\/es\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/aws.amazon.com\/es\/<\/a><\/td><\/tr><tr><td><strong>Microsoft Azure<\/strong><\/td><td>Azure es la plataforma de servicios en la nube de Microsoft. Ofrece una variedad de servicios de computaci\u00f3n en la nube, incluyendo opciones para an\u00e1lisis, almacenamiento y redes. Los usuarios pueden seleccionar y personalizar estas soluciones de acuerdo a sus requisitos.<\/td><td><a href=\"https:\/\/azure.microsoft.com\/en-us\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/azure.microsoft.com\/en-us<\/a><\/td><\/tr><tr><td><strong>Google Cloud<\/strong><\/td><td>Google Cloud es una plataforma de servicios en la nube que proporciona servicios de computaci\u00f3n, almacenamiento y aplicaciones a trav\u00e9s de la infraestructura de Google. Esta plataforma permite a las empresas una forma eficaz, flexible y escalable de crear, desplegar y gestionar servicios y aplicaciones.<\/td><td><a href=\"https:\/\/cloud.google.com\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/cloud.google.com<\/a><\/td><\/tr><tr><td><strong>Oracle Cloud<\/strong><\/td><td>Oracle Cloud es la plataforma de servicios en la nube ofrecida por Oracle Corporation, proporcionando servidores, almacenamiento, red, aplicaciones y servicios a trav\u00e9s de una red global de centros de datos manejados por Oracle Corporation. Oracle Cloud ofrece servicios de infraestructura, plataforma y software en la nube.<\/td><td><a href=\"https:\/\/www.oracle.com\/cloud\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.oracle.com\/cloud\/<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales entornos cloud utilizados en el back-end.<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">API<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-13.png\" alt=\"\" class=\"wp-image-108\" width=\"543\" height=\"345\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-13.png 724w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-13-300x191.png 300w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><\/figure>\n\n\n\n<p>La Interfaz de Programaci\u00f3n de Aplicaciones, conocida como API &#8211; <em>Application Programming Interface<\/em>&#8211; por sus siglas en ingl\u00e9s, es un conjunto de directrices y protocolos que establecen c\u00f3mo deben comunicarse los distintos componentes del software entre ellos. En el contexto de las aplicaciones web, es crucial que los desarrolladores de back-end est\u00e9n familiarizados con los siguientes aspectos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>HTTP<\/strong>: Este es el protocolo esencial en el que se basa la web. Estipula c\u00f3mo se deben formatear y transmitir los mensajes, as\u00ed como las acciones que deben tomar los navegadores y servidores web en respuesta a diferentes comandos.\n<ul class=\"wp-block-list\">\n<li><strong>M\u00e9todos<\/strong>: Tambi\u00e9n referidos como &#8220;verbos HTTP&#8221;, son instrucciones que se\u00f1alan la acci\u00f3n que se debe llevar a cabo en el recurso definido por una URL. Cada uno de estos m\u00e9todos realiza una acci\u00f3n diferente en el servidor. Los m\u00e9todos HTTP incluyen GET, POST, PUT, DELETE, entre otros.<\/li>\n\n\n\n<li><strong>Estados<\/strong>: Los c\u00f3digos de estado HTTP se\u00f1alan si una petici\u00f3n HTTP se ha completado exitosamente y proporcionan informaci\u00f3n detallada sobre el error en caso de fracaso.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>REST<\/strong>: <em>Representational State Transfer<\/em>, es un patr\u00f3n de dise\u00f1o para la comunicaci\u00f3n entre componentes de software, com\u00fanmente utilizado en la creaci\u00f3n de APIs web. REST emplea un modelo de cliente-servidor, donde el cliente realiza peticiones a un servidor, y este responde con los recursos solicitados.\n<ul class=\"wp-block-list\">\n<li><strong>Formatos<\/strong>: Los principales formatos utilizados en REST son los siguientes:<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Formato<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>JSON<\/strong><\/td><td>Es un formato de datos sencillo y f\u00e1cil de interpretar tanto por humanos como por m\u00e1quinas. Se usa con frecuencia para transferir datos entre un servidor y una aplicaci\u00f3n web en formato de objeto JavaScript.<\/td><td><a href=\"https:\/\/www.json.org\/json-en.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.json.org\/json-en.html<\/a><\/td><\/tr><tr><td><strong>XML<\/strong><\/td><td>Es un lenguaje de etiquetado similar al HTML que se usa para codificar documentos en un formato legible tanto para humanos como para m\u00e1quinas.<\/td><td><a href=\"https:\/\/www.w3.org\/standards\/xml\/core\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.w3.org\/standards\/xml\/core<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales formatos utilizados en REST.<\/em><\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Aplicaciones Clientes HTTP<\/strong>: Son programas de software que permiten a los usuarios construir, personalizar y enviar peticiones HTTP a un servidor. Estas peticiones pueden incluir varios m\u00e9todos HTTP, encabezados, par\u00e1metros y cuerpos de mensaje. Este tipo de aplicaciones se emplea principalmente para probar y depurar APIs web, ya que permiten al usuario verificar las respuestas del servidor y comprender c\u00f3mo reacciona la API ante diferentes tipos de peticiones, simulando el comportamiento de un cliente, como un navegador web o una aplicaci\u00f3n m\u00f3vil, interactuando con un servidor web. Tambi\u00e9n pueden soportar caracter\u00edsticas m\u00e1s avanzadas, como la ejecuci\u00f3n de conjuntos de peticiones, pruebas automatizadas, y la simulaci\u00f3n de diferentes tipos de entornos de red y condiciones de error. Las m\u00e1s utilizadas actualmente por los desarrolladores back-end son:<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Cliente HTTP<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>Postman<\/strong><\/td><td>Es una herramienta popular que los desarrolladores utilizan para probar APIs. Ofrece una interfaz gr\u00e1fica que facilita el env\u00edo de peticiones HTTP y la visualizaci\u00f3n de las respuestas.<\/td><td><a href=\"https:\/\/www.postman.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.postman.com\/<\/a><\/td><\/tr><tr><td><strong>Insomnia<\/strong><\/td><td>Es una herramienta similar a Postman que los desarrolladores utilizan para probar y explorar APIs. Provee funcionalidades para crear peticiones HTTP y ver las respuestas.<\/td><td><a href=\"https:\/\/insomnia.rest\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/insomnia.rest\/<\/a><\/td><\/tr><tr><td><strong>JMeter<\/strong><\/td><td>Es una herramienta de c\u00f3digo abierto de Apache que se utiliza para realizar pruebas de carga y medir el rendimiento de varias partes de software, como aplicaciones web, servidores de bases de datos, etc.<\/td><td><a href=\"https:\/\/jmeter.apache.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/jmeter.apache.org\/<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales aplicaciones clientes HTTP utilizadas por los desarrolladores back-end.<\/em><\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Documentaci\u00f3n<\/strong>: La documentaci\u00f3n es esencial en el back-end ya que proporciona un entendimiento claro y conciso de c\u00f3mo funciona el software, c\u00f3mo las diferentes partes interact\u00faan entre s\u00ed, y c\u00f3mo los desarrolladores y usuarios deben interactuar con \u00e9l. Esto facilita el mantenimiento, la depuraci\u00f3n y la mejora del c\u00f3digo en el futuro, y es crucial para que otros desarrolladores, tanto los actuales como los futuros miembros del equipo, puedan comprender el dise\u00f1o y la l\u00f3gica del software. Adem\u00e1s, una buena documentaci\u00f3n es fundamental para que los usuarios, como los desarrolladores front-end o los consumidores de una API, sepan c\u00f3mo utilizar correctamente el software. Para las APIs REST se utiliza en la actualidad:\n<ul class=\"wp-block-list\">\n<li><strong>OpenAPI<\/strong>: Es una especificaci\u00f3n para la creaci\u00f3n de APIs RESTful. Define un formato est\u00e1ndar para describir la API, lo que facilita su uso y comprensi\u00f3n. Se encuentra disponible en <a href=\"https:\/\/www.openapis.org\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.openapis.org<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Accesibilidad y Autorizaci\u00f3n de Seguridad<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-14.png\" alt=\"\" class=\"wp-image-109\" width=\"335\" height=\"345\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-14.png 447w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-14-292x300.png 292w\" sizes=\"auto, (max-width: 335px) 100vw, 335px\" \/><\/figure>\n\n\n\n<p>Las pr\u00e1cticas de seguridad y autorizaci\u00f3n en el back-end son componentes cr\u00edticos para asegurar que los datos y recursos de una aplicaci\u00f3n solo sean accesibles por los actores o sistemas pertinentes. Una implementaci\u00f3n adecuada de estos mecanismos no solo salvaguarda la informaci\u00f3n delicada y restringe el acceso no permitido, sino que tambi\u00e9n incrementa la usabilidad y la inclusi\u00f3n, permitiendo que un gran n\u00famero de usuarios aproveche la aplicaci\u00f3n.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Autenticaci\u00f3n<\/strong>: Este procedimiento implica la confirmaci\u00f3n de la identidad de un usuario, dispositivo o sistema. En el \u00e1mbito de desarrollo web, com\u00fanmente se refiere a la comprobaci\u00f3n de la identidad de un usuario antes de concederle el acceso a recursos custodiados.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Mecanismo de autenticaci\u00f3n<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>JSON Web Tokens (JWT)<\/strong><\/td><td>Es un est\u00e1ndar de c\u00f3digo abierto que permite la creaci\u00f3n de tokens de acceso que aseguran el intercambio de datos entre dos entidades. Los JWT son un m\u00e9todo frecuentemente usado para autenticar las peticiones de los usuarios en una aplicaci\u00f3n web.<\/td><td><a href=\"https:\/\/jwt.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/jwt.io\/<\/a><\/td><\/tr><tr><td><strong>OAuth<\/strong><\/td><td>Es un est\u00e1ndar de c\u00f3digo abierto para la autorizaci\u00f3n que proporciona a los usuarios un &#8220;flujo de acceso seguro&#8221; a los recursos del servidor a la vez que protege las credenciales del usuario. Es usualmente empleado para permitir a los usuarios compartir datos de una cuenta con otra sin necesidad de revelar sus contrase\u00f1as.<\/td><td><a href=\"https:\/\/oauth.net\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/oauth.net\/<\/a><\/td><\/tr><tr><td><strong>SAML<\/strong><\/td><td>Es un est\u00e1ndar de c\u00f3digo abierto para el intercambio de informaci\u00f3n de autenticaci\u00f3n y autorizaci\u00f3n entre entidades, en particular entre un proveedor de identidad y un proveedor de servicios.<\/td><td><a href=\"https:\/\/auth0.com\/resources\/ebooks\/saml-authentication-explained\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/auth0.com<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales mecanismos de autenticaci\u00f3n utilizados en el back-end de entornos web.<\/em><\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Autorizaci\u00f3n<\/strong>: Se refiere al proceso de definir qu\u00e9 recursos o acciones est\u00e1 permitido acceder o realizar un usuario. Esto puede implicar establecer permisos a nivel de usuario, grupo o rol, dependiendo de la complejidad y las necesidades de la aplicaci\u00f3n.<\/li>\n\n\n\n<li><strong>Gesti\u00f3n de Sesiones:<\/strong> Es la administraci\u00f3n de la informaci\u00f3n de un usuario entre diferentes peticiones al sistema. En esencia, la gesti\u00f3n de sesiones ayuda a mantener la continuidad de la experiencia del usuario, permiti\u00e9ndole moverse entre diferentes partes de una aplicaci\u00f3n web sin tener que autenticarse en cada paso.<\/li>\n\n\n\n<li><strong>Seguridad:<\/strong> Uno de los objetivos primordiales del desarrollo web es prevenir ataques cibern\u00e9ticos. Esto implica construir aplicaciones resistentes a las amenazas comunes, como la inyecci\u00f3n de c\u00f3digo, el robo de sesiones, y los ataques de fuerza bruta, entre otros.\n<ul class=\"wp-block-list\">\n<li><strong>OWASP:<\/strong> Es una organizaci\u00f3n no lucrativa enfocada en mejorar la seguridad de las aplicaciones de software. Proveen una variedad de recursos y herramientas para ayudar a las organizaciones a dise\u00f1ar, adquirir y mantener sistemas de informaci\u00f3n seguros. Puedes encontrar m\u00e1s informaci\u00f3n en su sitio web <a href=\"https:\/\/owasp.org\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/owasp.org<\/a>. Los desarrolladores web (tanto front-end como back-end) deben estar al tanto y aprender sobre el Top 10 de vulnerabilidades, que identifica los 10 riesgos de seguridad m\u00e1s cr\u00edticos para las aplicaciones web. Esta lista, que se actualiza peri\u00f3dicamente, se basa en datos de varias organizaciones de todo el mundo y se utiliza ampliamente como gu\u00eda b\u00e1sica para las mejores pr\u00e1cticas de seguridad web. Su importancia radica en ayudar a los desarrolladores, arquitectos, gerentes de seguridad y empresas a entender y mitigar las amenazas m\u00e1s comunes y peligrosas en el desarrollo web, mejorando as\u00ed la seguridad y solidez de sus aplicaciones.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Auditor\u00eda y Registro:<\/strong> Es fundamental llevar un registro detallado de qui\u00e9n hace qu\u00e9 y cu\u00e1ndo. Esto se realiza a trav\u00e9s de archivos de registro (logs). Estos archivos son una parte crucial de la administraci\u00f3n de sistemas, ya que proporcionan una visi\u00f3n detallada de lo que est\u00e1 ocurriendo en el sistema, permitiendo a los administradores detectar problemas, analizar su causa y, si es necesario, tomar medidas correctivas.<\/li>\n\n\n\n<li><strong>Pruebas:<\/strong> Las pruebas de seguridad deben incorporarse desde el comienzo del desarrollo y las aplicaciones deben ser examinadas regularmente en busca de posibles vulnerabilidades.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pruebas<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-15.png\" alt=\"\" class=\"wp-image-110\" width=\"467\" height=\"419\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-15.png 623w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-15-300x269.png 300w\" sizes=\"auto, (max-width: 467px) 100vw, 467px\" \/><\/figure>\n\n\n\n<p>El testing en el back-end es una faceta vital del desarrollo de software, se encarga de asegurar que cada segmento del sistema opere seg\u00fan lo previsto antes de su publicaci\u00f3n. Esto abarca examinar la l\u00f3gica del negocio, las bases de datos, las APIs, los servidores y todos los dem\u00e1s elementos que constituyen el back-end de una aplicaci\u00f3n. La ejecuci\u00f3n de estas pruebas garantiza la identificaci\u00f3n y correcci\u00f3n de cualquier fallo, error o problema de rendimiento antes de que el software llegue a manos de los usuarios. Esto no s\u00f3lo eleva la calidad y fiabilidad del software, sino que tambi\u00e9n puede resultar en ahorro de tiempo y recursos al evitar problemas que ser\u00edan mucho m\u00e1s costosos de solucionar despu\u00e9s del lanzamiento.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Unitarias:<\/strong> Son de gran relevancia en el desarrollo back-end. Estos tests se enfocan en segmentos individuales del c\u00f3digo, como funciones o m\u00e9todos, para garantizar que operan correctamente de forma aislada.<\/li>\n\n\n\n<li><strong>Integraci\u00f3n:<\/strong> Estas pruebas se encargan de confirmar que los distintos elementos de un sistema operan adecuadamente cuando se unen. Se emplean para identificar posibles problemas en las interacciones entre distintas partes del c\u00f3digo.<\/li>\n\n\n\n<li><strong>Automatizadas:<\/strong> Son tests que se llevan a cabo autom\u00e1ticamente, muchas veces como parte de un proceso de integraci\u00f3n continua. Estas pruebas pueden ser tanto unitarias como de integraci\u00f3n y proporcionan una r\u00e1pida retroalimentaci\u00f3n sobre la salud del c\u00f3digo.<\/li>\n\n\n\n<li><strong>Regresi\u00f3n:<\/strong> Estos tests buscan identificar nuevos fallos en el c\u00f3digo existente despu\u00e9s de realizar modificaciones. La meta es asegurarse de que los cambios no han afectado ninguna funcionalidad ya existente.<\/li>\n<\/ul>\n\n\n\n<p>Dentro de la lista de los frameworks y librer\u00edas para realizar pruebas para las aplicaciones back-end, encontramos:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Framework\/Librer\u00eda<\/strong><\/td><td><strong>Lenguaje<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>JUnit<\/strong><\/td><td>Java<\/td><td>Es un marco de trabajo para Java que asiste a los desarrolladores a elaborar pruebas unitarias y de integraci\u00f3n.<\/td><td><a href=\"https:\/\/junit.org\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/junit.org<\/a><\/td><\/tr><tr><td><strong>pytest<\/strong><\/td><td>Python<\/td><td>Es un marco de trabajo para Python que posibilita la escritura de pruebas sencillas y escalables para proyectos de diferentes envergaduras.<\/td><td><a href=\"https:\/\/docs.pytest.org\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.pytest.org<\/a><\/td><\/tr><tr><td><strong>NUnit<\/strong><\/td><td>C#<\/td><td>Es un marco de trabajo para .net que ofrece una plataforma para desarrollar pruebas en lenguajes de este entorno.<\/td><td><a href=\"https:\/\/nunit.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/nunit.org\/<\/a><\/td><\/tr><tr><td><strong>Testing<\/strong><\/td><td>Go<\/td><td>Es el paquete de pruebas integrado en el lenguaje de programaci\u00f3n Go. Permite a los desarrolladores redactar pruebas unitarias y de integraci\u00f3n para su c\u00f3digo.<\/td><td><a href=\"https:\/\/pkg.go.dev\/testing\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/pkg.go.dev\/testing<\/a><\/td><\/tr><tr><td><strong>PHPUnit<\/strong><\/td><td>PHP<\/td><td>Es un marco de trabajo para PHP que ofrece una forma estructurada de redactar y ejecutar pruebas unitarias.<\/td><td><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/phpunit.de\/<\/a><\/td><\/tr><tr><td><strong>RSpec<\/strong><\/td><td>Ruby<\/td><td>Es un marco de trabajo para Ruby que se utiliza para pruebas de comportamiento, es decir, las pruebas se enfocan en c\u00f3mo se espera que la aplicaci\u00f3n se comporte desde la perspectiva del usuario.<\/td><td><a href=\"https:\/\/rspec.info\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/rspec.info\/<\/a><\/td><\/tr><tr><td><strong>Testing<\/strong><\/td><td>Rust<\/td><td>Es el paquete de pruebas incorporado en el lenguaje de programaci\u00f3n Rust. Ofrece soporte para la escritura de pruebas unitarias y de integraci\u00f3n.<\/td><td><a href=\"https:\/\/doc.rust-lang.org\/rust-by-example\/testing\/unit_testing.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/doc.rust-lang.org<\/a><\/td><\/tr><tr><td><strong>Google Test<\/strong><\/td><td>C++<\/td><td>Es un marco de trabajo para C++ desarrollado por Google. Provee una forma efectiva de redactar pruebas unitarias.<\/td><td><a href=\"https:\/\/google.github.io\/googletest\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/google.github.io\/googletest\/<\/a><\/td><\/tr><tr><td><strong>Jest<\/strong><\/td><td>JavaScript<\/td><td>Es un marco de trabajo de JavaScript popular y completo que se utiliza para pruebas unitarias, de integraci\u00f3n y de extremo a extremo. Especialmente utilizado en el desarrollo de aplicaciones Node.js y React.<\/td><td><a href=\"https:\/\/jestjs.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/jestjs.io\/<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales frameworks y librer\u00edas para pruebas utilizados en el back-end.<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Control de Versiones<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-16.png\" alt=\"\" class=\"wp-image-111\" width=\"461\" height=\"419\" srcset=\"https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-16.png 615w, https:\/\/georgethepenguin.dev\/wp-content\/uploads\/2023\/05\/image-16-300x273.png 300w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n\n\n\n<p>Los sistemas de gesti\u00f3n de versiones son un compendio de herramientas que facilitan la administraci\u00f3n y control de las diversas versiones y modificaciones efectuadas en el c\u00f3digo fuente de un proyecto de software. Son herramientas esenciales que facilitan la tarea de administrar los cambios en los archivos de c\u00f3digo fuente, as\u00ed como las diferentes versiones de un software a lo largo del tiempo. Estos sistemas permiten a los desarrolladores trabajar de manera m\u00e1s efectiva en equipos, mantener un registro de las versiones de los archivos, y resolver conflictos cuando varios desarrolladores hacen cambios concurrentes.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Git:<\/strong> Es la herramienta de gesti\u00f3n de versiones m\u00e1s popular hoy en d\u00eda. Es un sistema distribuido que permite a varios desarrolladores cooperar en un proyecto simult\u00e1neamente sin entorpecerse entre ellos. Facilita la conservaci\u00f3n de un registro hist\u00f3rico de las modificaciones, la capacidad de retroceder a versiones previas, la creaci\u00f3n de ramas para el desarrollo de funcionalidades espec\u00edficas, y mucho m\u00e1s.<\/li>\n\n\n\n<li><strong>Repositorio:<\/strong> Se puede pensar en un repositorio como una especie de archivo para tu proyecto, que alberga todos los archivos del mismo y tambi\u00e9n el historial de cambios de cada uno de ellos.<\/li>\n\n\n\n<li><strong>Colaboraci\u00f3n:<\/strong> Git hace sencilla la colaboraci\u00f3n al permitir a los programadores trabajar en diferentes ramas del mismo repositorio. Una solicitud de extracci\u00f3n (pull request) es una propuesta para incorporar los cambios de una rama en otra, y se utiliza generalmente para revisar y debatir los cambios antes de fusionarlos.<\/li>\n\n\n\n<li><strong>Resoluci\u00f3n de conflictos:<\/strong> En Git, un conflicto surge cuando dos o m\u00e1s desarrolladores alteran la misma l\u00ednea de c\u00f3digo en el mismo archivo. Git ofrece herramientas para resolver estos conflictos de forma manual.<\/li>\n\n\n\n<li><strong>Etiquetas y versionamiento:<\/strong> Las etiquetas en Git permiten se\u00f1alar puntos espec\u00edficos en la historia del c\u00f3digo como importantes. Normalmente, se utilizan para marcar las versiones de publicaci\u00f3n del proyecto.<\/li>\n\n\n\n<li><strong>Herramientas y plataformas<\/strong>: A continuaci\u00f3n las principales herramientas y plataformas disponibles para Git:<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Plataforma<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>GitHub<\/strong><\/td><td>GitHub es el servicio de alojamiento de repositorios Git m\u00e1s popular en la actualidad, proporcionando una interfaz web para el sistema de gesti\u00f3n de versiones Git. Ofrece caracter\u00edsticas adicionales como la gesti\u00f3n de problemas, la revisi\u00f3n de c\u00f3digo y funcionalidades de CI\/CD.<\/td><td><a href=\"https:\/\/github.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/<\/a><\/td><\/tr><tr><td><strong>GitLab<\/strong><\/td><td>Al igual que GitHub, GitLab es otro servicio de alojamiento de repositorios Git que tambi\u00e9n proporciona su propio conjunto de caracter\u00edsticas, incluyendo gesti\u00f3n de proyectos, integraci\u00f3n y despliegue continuo, y seguimiento de problemas.<\/td><td><a href=\"https:\/\/about.gitlab.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/about.gitlab.com\/<\/a><\/td><\/tr><tr><td><strong>Bitbucket<\/strong><\/td><td>Bitbucket es un servicio de alojamiento para repositorios Git y Mercurial, propiedad de Atlassian. Se integra con otras herramientas de Atlassian como Jira, Bamboo y Confluence.<\/td><td><a href=\"https:\/\/bitbucket.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/bitbucket.org\/<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales herramientas y plataformas para Git.<\/em><\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Paradigmas:<\/strong> Son formas de trabajo que recomiendan las mejores pr\u00e1cticas para el uso de Git:<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Paradigma<\/strong><\/td><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>URL<\/strong><\/td><\/tr><tr><td><strong>GitHub Flow<\/strong><\/td><td>GitHub Flow es un flujo de trabajo simplificado propuesto por GitHub que utiliza solamente una rama principal y ramas de caracter\u00edsticas temporales, lo que facilita el proceso de colaboraci\u00f3n y revisi\u00f3n.<\/td><td><a href=\"https:\/\/docs.github.com\/en\/get-started\/quickstart\/github-flow\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.github.com<\/a><\/td><\/tr><tr><td><strong>Git Flow<\/strong><\/td><td>GitFlow es un modelo de flujo de trabajo m\u00e1s complejo que emplea varios tipos de ramas para diferentes fines (desarrollo, lanzamiento, mantenimiento, correcci\u00f3n de errores), proporcionando una estructura m\u00e1s rigurosa para proyectos de gran envergadura.<\/td><td><a rel=\"noreferrer noopener\" href=\"https:\/\/nvie.com\/posts\/a-successful-git-branching-model\/\" target=\"_blank\">https:\/\/nvie.com<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Principales paradigmas de trabajo para Git.<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Ingenier\u00eda de Software<\/h3>\n\n\n\n<p>Comprender las bases de la ingenier\u00eda de software es crucial para todo programador de back-end. Estas bases comprenden principios de dise\u00f1o y arquitectura, estructuras de datos, algoritmos, patrones de dise\u00f1o, pruebas, entre otros. El dominio de estos conceptos no solo habilita a los programadores para redactar un c\u00f3digo m\u00e1s eficaz, expansible y sostenible, sino tambi\u00e9n para entender y solucionar desaf\u00edos m\u00e1s complejos. Adem\u00e1s, contando con una fuerte base en ingenier\u00eda de software, los programadores pueden acomodarse con mayor facilidad a nuevas tecnolog\u00edas y lenguajes de programaci\u00f3n, dado que muchos de estos conceptos son universales y se pueden aplicar en una variedad de contextos.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Buenas pr\u00e1cticas de codificaci\u00f3n<\/strong>: Son un conjunto de reglas y convenciones dirigidas a mejorar la calidad y sostenibilidad del c\u00f3digo. Incluyen principios como DRY (<em>Don&#8217;t Repeat Yourself<\/em>), SOLID y la redacci\u00f3n de un c\u00f3digo legible y correctamente documentado. Su relevancia en el desarrollo de back-end reside en la generaci\u00f3n de un c\u00f3digo s\u00f3lido, expansible y de f\u00e1cil mantenimiento.<\/li>\n\n\n\n<li><strong>Algoritmos y estructuras de datos<\/strong>: Los algoritmos son procesos secuenciales para solucionar problemas o llevar a cabo tareas. Las estructuras de datos son m\u00e9todos para organizar y almacenar informaci\u00f3n. La elecci\u00f3n correcta de los algoritmos y estructuras de datos es vital para la eficacia y el rendimiento del back-end.<\/li>\n\n\n\n<li><strong>An\u00e1lisis y Dise\u00f1o de Software<\/strong>: El an\u00e1lisis de software implica comprender los requerimientos y el \u00e1mbito del problema, mientras que el dise\u00f1o de software implica planificar la estructura y organizaci\u00f3n del software antes de su implementaci\u00f3n. Ambos son clave para la creaci\u00f3n de un software de back-end eficaz y eficiente.<\/li>\n\n\n\n<li><strong>UML<\/strong>: Es un lenguaje normalizado utilizado para visualizar, especificar y documentar los componentes de un sistema de software. En el desarrollo de back-end, UML puede ser \u00fatil para visualizar la arquitectura y el dise\u00f1o del sistema.<\/li>\n\n\n\n<li><strong>Ciclo de Vida del Software<\/strong>: Es la secuencia de fases por las que pasa un software desde su creaci\u00f3n hasta su retirada o sustituci\u00f3n. Entender el ciclo de vida del software es clave para la gesti\u00f3n eficaz del desarrollo y mantenimiento del back-end.<\/li>\n\n\n\n<li><strong>Patrones de dise\u00f1o<\/strong>: Son soluciones reutilizables y generales para problemas habituales que se dan en el dise\u00f1o de software. En el desarrollo de back-end, los patrones de dise\u00f1o pueden ser \u00fatiles para resolver problemas recurrentes y hacer el c\u00f3digo m\u00e1s flexible, eficiente y reutilizable.<\/li>\n\n\n\n<li><strong>Patrones de arquitectura<\/strong>: Son convenciones de alto nivel para la estructuraci\u00f3n de un sistema de software. Pueden comprender patrones como MVC (<em>Model-View-Controller<\/em>), MVVM (<em>Model-View-ViewModel<\/em>) y arquitectura de microservicios. Los patrones de arquitectura son cruciales en el desarrollo de back-end para garantizar que el sistema es expansible, s\u00f3lido y f\u00e1cil de mantener.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Habilidades &#8220;Blandas&#8221;<\/h2>\n\n\n\n<p>Las competencias interpersonales tambi\u00e9n son cruciales para los programadores de back-end. Estas capacidades comprenden la habilidad para comunicarse de manera eficaz, colaborar eficientemente en equipo, administrar el tiempo y lidiar con el estr\u00e9s, entre otras. En un contexto laboral cooperativo, la habilidad para expresar ideas de manera clara, entender los puntos de vista ajenos, y trabajar productivamente con otros es fundamental para el triunfo del proyecto. Adem\u00e1s, las competencias interpersonales pueden ayudar a los programadores a manejar de mejor manera las exigencias y desaf\u00edos del trabajo, lo cual puede mejorar su desempe\u00f1o y satisfacci\u00f3n laboral general.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Comunicaci\u00f3n efectiva<\/strong>: Consiste en poder transmitir y recibir datos de manera clara y precisa. En el desarrollo de back-end, facilita la cooperaci\u00f3n, la soluci\u00f3n de problemas y la comprensi\u00f3n de los requerimientos del proyecto.<\/li>\n\n\n\n<li><strong>Resoluci\u00f3n de problemas<\/strong>: Es la competencia para encontrar soluciones a desaf\u00edos y problemas. En back-end, es esencial para identificar y resolver problemas t\u00e9cnicos.<\/li>\n\n\n\n<li><strong>Pensamiento anal\u00edtico<\/strong>: Es la capacidad de analizar informaci\u00f3n y hacer inferencias l\u00f3gicas. Asiste a los programadores de back-end a entender sistemas complicados y mejorar el rendimiento y eficiencia del c\u00f3digo.<\/li>\n\n\n\n<li><strong>Conocimiento de la industria<\/strong>: Entender el sector o industria para el que se est\u00e1 desarrollando puede incrementar la efectividad del software y facilitar la comunicaci\u00f3n con los interesados.<\/li>\n\n\n\n<li><strong>Capacidad de autoaprendizaje<\/strong>: Dado que las tecnolog\u00edas y pr\u00e1cticas cambian con rapidez, es crucial ser capaz de aprender de manera aut\u00f3noma para mantenerse al d\u00eda.<\/li>\n\n\n\n<li><strong>Colaboraci\u00f3n y trabajo en equipo<\/strong>: Consiste en trabajar de manera productiva con otros, lo que es vital en proyectos de software grandes que involucran m\u00faltiples programadores.<\/li>\n\n\n\n<li><strong>Adaptabilidad<\/strong>: Consiste en la habilidad para adaptarse a los cambios, una competencia valiosa dado el ritmo de cambio en la tecnolog\u00eda y los requerimientos del proyecto.<\/li>\n\n\n\n<li><strong>Orientaci\u00f3n a los detalles<\/strong>: Consiste en prestar atenci\u00f3n a los peque\u00f1os aspectos o componentes de un proyecto. Es esencial para la calidad y la eficiencia del c\u00f3digo.<\/li>\n\n\n\n<li><strong>Administraci\u00f3n del tiempo<\/strong>: Consiste en organizar el tiempo de manera eficiente para cumplir con los plazos y manejar m\u00faltiples tareas.<\/li>\n\n\n\n<li><strong>Responsabilidad<\/strong>: Consiste en la fiabilidad y la capacidad para cumplir con los compromisos. Es esencial para la entrega oportuna de tareas y la construcci\u00f3n de confianza con el equipo.<\/li>\n\n\n\n<li><strong>Resiliencia<\/strong>: Es la habilidad para recuperarse de los contratiempos y continuar con el trabajo. Asiste a los programadores a manejar el estr\u00e9s y los desaf\u00edos.<\/li>\n\n\n\n<li><strong>Receptividad a las cr\u00edticas y retroalimentaci\u00f3n<\/strong>: Consiste en la capacidad para recibir y aprender de la retroalimentaci\u00f3n, lo que puede conducir a un mejor desarrollo personal y de software.<\/li>\n\n\n\n<li><strong>Creatividad<\/strong>: Puede ayudar a los programadores de back-end a encontrar soluciones \u00fanicas a problemas complicados y a innovar.<\/li>\n\n\n\n<li><strong>Toma de decisiones<\/strong>: Es la competencia para hacer selecciones informadas y eficaces, que es crucial para seleccionar la mejor soluci\u00f3n o direcci\u00f3n para el proyecto.<\/li>\n\n\n\n<li><strong>Liderazgo<\/strong>: Aunque no todos los programadores de back-end son l\u00edderes, la capacidad para liderar puede ser valiosa para coordinar equipos o proyectos.<\/li>\n\n\n\n<li><strong>Idiomas<\/strong>: Dado que muchas documentaciones, foros y tutoriales est\u00e1n en ingl\u00e9s, es importante para los programadores de back-end poder leer y entender este idioma. Adem\u00e1s, como la mayor\u00eda de las tecnolog\u00edas y lenguajes de programaci\u00f3n utilizan ingl\u00e9s, este conocimiento es imprescindible.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Camino Profesional<\/h2>\n\n\n\n<p>A continuaci\u00f3n, vamos a profundizar en algunas t\u00e1cticas y decisiones cruciales que pueden impulsarte en tu carrera como programador de back-end. Desde la adquisici\u00f3n de destrezas t\u00e9cnicas hasta la ampliaci\u00f3n de tu entendimiento del sector del software, la siguiente informaci\u00f3n est\u00e1 dise\u00f1ada para proveerte una orientaci\u00f3n valiosa en tu trayecto hacia el desarrollo y \u00e9xito profesional.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Roadmap:<\/strong> Es un &#8220;plano de ruta&#8221; creado y actualizado por la comunidad global de programaci\u00f3n, disponible online, que se\u00f1ala la mejor v\u00eda para aprender y dominar un papel de programador o un lenguaje de programaci\u00f3n. El mapa de ruta para back-end est\u00e1 disponible en <a href=\"https:\/\/roadmap.sh\/backend\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/roadmap.sh\/backend<\/a><\/li>\n\n\n\n<li><strong>Conocimientos sobre desarrollo Front-End<\/strong>: Aunque te enfoques en el back-end, es beneficioso tener un entendimiento b\u00e1sico del desarrollo front-end. Esto te asistir\u00e1 a colaborar m\u00e1s eficientemente con los programadores front-end y a entender c\u00f3mo las decisiones que hagas en el back-end pueden influir en la interfaz del usuario.<\/li>\n\n\n\n<li><strong>Conocimientos sobre otros roles en desarrollo e ingenier\u00eda de software<\/strong>: Entender las obligaciones y perspectivas de los analistas de sistemas, los ingenieros de calidad, los arquitectos de software y otros roles vinculados te brindar\u00e1 una perspectiva m\u00e1s integral del ciclo de vida del desarrollo de software.<\/li>\n\n\n\n<li><strong>Aprender los fundamentos de programaci\u00f3n y de ingenier\u00eda de software<\/strong>: Entender los principios elementales de la programaci\u00f3n y la ingenier\u00eda de software te proporcionar\u00e1 una base firme para el aprendizaje de nuevas tecnolog\u00edas y lenguajes.<\/li>\n\n\n\n<li><strong>Elegir un lenguaje y un marco de trabajo<\/strong>: Aunque es provechoso tener conocimientos en varios lenguajes y marcos de trabajo, especializarse en uno puede permitirte profundizar tus habilidades y aumentar tu valor como experto.<\/li>\n\n\n\n<li><strong>Certificarse<\/strong>: Las certificaciones pueden confirmar tus habilidades y conocimientos ante los empleadores. Algunas certificaciones son generales, mientras que otras son espec\u00edficas de un lenguaje, marco de trabajo o proveedor de tecnolog\u00eda.<\/li>\n\n\n\n<li><strong>Estudiar ingenier\u00eda<\/strong>: Un t\u00edtulo en ingenier\u00eda de software o un campo relacionado puede ofrecerte una educaci\u00f3n completa en los principios y pr\u00e1cticas de la ingenier\u00eda de software, as\u00ed como credenciales reconocidas en el sector.<\/li>\n<\/ul>\n\n\n\n<p>Para terminar, el rol de un programador back-end es multifac\u00e9tico y de gran relevancia en la creaci\u00f3n de soluciones de software. A lo largo de este post, hemos indagado en las numerosas obligaciones que implica, desde escribir c\u00f3digo de alta calidad y mantener bases de datos, hasta implementar sistemas seguros y eficientes. Adem\u00e1s, hemos resaltado la importancia de adquirir y mantener actualizadas una serie de habilidades t\u00e9cnicas, incluyendo lenguajes de programaci\u00f3n, conocimiento de bases de datos, uso de Git y pruebas de software.<\/p>\n\n\n\n<p>Sin embargo, el desarrollo y el \u00e9xito profesional en la programaci\u00f3n back-end no se limitan a la adquisici\u00f3n de habilidades t\u00e9cnicas. Las competencias &#8220;suaves&#8221;, como la comunicaci\u00f3n efectiva, la resoluci\u00f3n de problemas y la habilidad para adaptarse a los cambios, tambi\u00e9n desempe\u00f1an un papel esencial. Adem\u00e1s, la comprensi\u00f3n de los fundamentos de la ingenier\u00eda de software y la capacidad de colaborar con otros roles dentro del sector tecnol\u00f3gico son fundamentales. A medida que te embarques o sigas en tu trayecto como programador back-end, te animamos a explorar y profundizar en cada uno de estos aspectos para forjar un camino exitoso en esta apasionante y desafiante profesi\u00f3n. \u00a1Adelante y Muchos \u00c9xitos!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pr\u00f3ximamente<\/h2>\n\n\n\n<p>Relacionados a este post, pr\u00f3ximamente publicar\u00e9:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Video resumen:<\/strong> En mi canal de <a href=\"https:\/\/www.youtube.com\/@GeorgeThePenguin\" target=\"_blank\" rel=\"noreferrer noopener\">YouTube<\/a>, lanzar\u00e9 un video con un resumen de lo visto en el Live, respecto a los temas descritos en este post.<\/li>\n\n\n\n<li><strong>Pruebas de conocimiento:<\/strong> Publicar\u00e9 varias pruebas en un formato entretenido, en forma de juego, para que repasen y verifiquen lo aprendido en este post.<\/li>\n<\/ul>\n\n\n\n<p>Est\u00e9n muy atentos de mis <a href=\"https:\/\/linktr.ee\/george_the_penguin\" target=\"_blank\" rel=\"noreferrer noopener\">redes sociales<\/a> para conocer el lanzamiento de estas pr\u00f3ximas novedades.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un desarrollador back-end es el mago detr\u00e1s del tel\u00f3n que permite que la magia digital de los sitios web y las aplicaciones ocurra. Si pensamos en un sitio web como un coche, el desarrollador front-end es quien dise\u00f1a y construye la parte visible: el dise\u00f1o del autom\u00f3vil, los asientos c\u00f3modos, el volante. Por otro lado, el desarrollador back-end es quien se encarga de que el motor, la transmisi\u00f3n y los sistemas electr\u00f3nicos funcionen correctamente. En otras palabras, se encarga de la l\u00f3gica, las bases de datos, las aplicaciones de servidor y todas las partes internas que el usuario no ve, pero que son cruciales para que el sitio web o la aplicaci\u00f3n funcione correctamente.<\/p>\n","protected":false},"author":1,"featured_media":98,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-96","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categoria"],"_links":{"self":[{"href":"https:\/\/georgethepenguin.dev\/index.php\/wp-json\/wp\/v2\/posts\/96","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/georgethepenguin.dev\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/georgethepenguin.dev\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/georgethepenguin.dev\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/georgethepenguin.dev\/index.php\/wp-json\/wp\/v2\/comments?post=96"}],"version-history":[{"count":21,"href":"https:\/\/georgethepenguin.dev\/index.php\/wp-json\/wp\/v2\/posts\/96\/revisions"}],"predecessor-version":[{"id":156,"href":"https:\/\/georgethepenguin.dev\/index.php\/wp-json\/wp\/v2\/posts\/96\/revisions\/156"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/georgethepenguin.dev\/index.php\/wp-json\/wp\/v2\/media\/98"}],"wp:attachment":[{"href":"https:\/\/georgethepenguin.dev\/index.php\/wp-json\/wp\/v2\/media?parent=96"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/georgethepenguin.dev\/index.php\/wp-json\/wp\/v2\/categories?post=96"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/georgethepenguin.dev\/index.php\/wp-json\/wp\/v2\/tags?post=96"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}