0% encontró este documento útil (0 votos)
58 vistas4 páginas

Guía Completa para Desarrollo Backend

Este documento describe los conceptos y tecnologías fundamentales para el desarrollo backend, incluyendo lenguajes de programación, bases de datos, arquitectura, APIs, pruebas, frameworks y más.

Cargado por

dqnielreyeshdz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
58 vistas4 páginas

Guía Completa para Desarrollo Backend

Este documento describe los conceptos y tecnologías fundamentales para el desarrollo backend, incluyendo lenguajes de programación, bases de datos, arquitectura, APIs, pruebas, frameworks y más.

Cargado por

dqnielreyeshdz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Ruta backend:

Un desarrollador backend es aquel que se encarga de construir la parte de la aplicación que


funciona en el servidor, la que comunica los datos con el cliente, definir permisos y respuestas de
peticiones cuando un usuario interactúa con el cliente.

La parte que los usuarios nunca verán ni tendrán que interactuar (implementación), únicamente
interactúan con el fronted (interfaz gráfica). Para empezar un backend se recomienda estructuras
de datos, algoritmos, al menos un lenguaje de programación como Java, C++, C#, Orientación a
objetos, patrones de diseño (Ej: Singleton), arquitectura de software, patrones de arquitectura y
SOLID.

Revisar patrones de diseño. Busca entender de arquitectura: Layer, hexagonal, orientada a


microservicios.

Saber lo básico sobre cómo funciona el internet (Redes, servidores, CRUD,), cómo funciona un
sistema de archivos, y como crear y editar archivos con IDE, conocimiento de protocolos de
Internet: HTTP, POP, TCP/IP. Además, saber lo superficial de HTML, CSS y Javascript, aunque este
último no tan superficial ya que se puede usar en backend.

La forma de crear código en backend es más abstracta, (editor y una terminal), conocer cómo
funcionan los sistemas operativos, cómo funciona la terminal (como sus comandos esenciales),
conocer cómo funciona la memoria, manejo de IO, proceso que graba información al disco duro.

Aprender POSIX, un estándar para que diferentes sistemas operativos tengan compatibilidad,
Conocer conceptos generales de networking (Redes), clientes y servidores, direcciones IP, firewalls,
routers, puertos: HTTP, HTTPS. Además de contar con los conocimientos básicos de seguridad para
prevenir los ataques en servidor como SQL Injection, DoS, Fuerza bruta.

Lenguajes de programación para dedicarse al desarrollo backend, Python, Rust, Java, Ruby, PHP,
nodeJS, Go, C#. Aprender algunos de estos lenguajes dependiendo de las necesidades de un
proyecto como construir la aplicación en tiempos cortos o que la respuesta de mi servidor sea
rápida.

La ventaja en aprender algunos de estos lenguajes, Python en esencial es que no es exclusivo del
backend sino también para inteligencia artificial, C# o Java para desarrollo de videojuegos, aunque
este último es el área de la programación con menor interés para mis gustos.

Tras elegir los conceptos fundamentales del lenguaje seleccionado, seguirá a aprender a construir
una API, utilizar una herramienta fundamental para ello, GIT (obligatoria de aprender).

Git: Sistema de control de versiones que nos permite guardar el progreso de la codificación,
conforme el proyecto se encuentre creciendo, se utilizara para guardar etapa por etapa del
proyecto, a cada etapa se le denomina commit. (“Checkpoints” para regresar cada vez que lo
necesitemos).

Otro beneficio es trabajar de manera colaborativa con otros desarrolladores como github, gitlab o
bitcuket. Continuemos con la construcción de la API
API: Application Programming Interface, es el Puente de comunicación en el cual se intercambia la
información entre las peticiones del cliente y las respuestas del servidor, se realizan las conexiones
con las bases de datos, permite leer, escribir, actualizar y borrar conocida como CRUD por sus siglas
en ingles.

Comunicación entre servidor y base de datos, servidor y cliente, servidor y otros servidores:

Como se comunicarán las distintas partes de una aplicación será a través de una API, y para ello se
utilizan los protocolos. El desarrollo back-end se basa en el uso de protocolos y tecnologías web
como HTTP, REST, SOAP, entre otros.

API REST: La más utilizada, utiliza JSon para el envió de información.

SOAP: Utiliza XML o GRAPHQL

Otro concepto para aprender son las bases de datos, además de definir las conexiones se deberá
construir las peticiones a la base de datos para entregar la información que el cliente necesita, se
construye a través de un lenguaje de consulta como SQL. Las bases de datos se dividen en
relacionales y no relacionales.

Relacionales: Utilizan gestores de datos para acceder a estos como MySQL, PostgreSQL, MariDB,
Oracle, SQLite, MicrosoftSQLServer.

No relaciones: Aprender alguna de las siguientes: mongoDB, Redis, Cassandra, Neo4j, Firebase
DynamoDB.

Después de aprender la comunicación de bases de datos, se necesita conocer las estructuras de


datos, formas en que se guarda la información en memoria, para ser enviada o procesada para un
uso posterior. Algunas estructuras son: Arrays, PILAS, COLAS, listas enlazadas, HASHMAPS, Arboles,
y Grafos.

Para manipular las estructuras de datos y el flujo de la información para resolver problemas de
manera eficiente se necesitan algoritmos, complejidad algorítmica, complejidad espacial, notación
Big O.

Aprender frameworks o librerías: Ofrecen formas de trabajo estandarizados en las que problemas
comunes ya han sido solucionados, ofreciéndonos formas de codificación, maximizando nuestra
productividad y tiempo.

NodeJS con Express

Python con Flask, FastAPI o Django

Ruby con Rails

PHP con Lavarel o Symfony

Go con Gin, Buffalo o Echo

JAVA con Spring

C# y C++ con .NET


Aprender testing: Unitario, sociable, de integración, e2e, London vs Chicago, tdd, etc. Aprender a
refactorizar. Como usar un shortcut en el ide trabajar con refactorings automatizados. Como definir
bien los endpoints de un api. Methods, http status, handleo de errores. Integración continua.
Docker, pipelines, etc.

De ultimo tenemos un concepto conocido como ORM (Object Relational Mapping), tecnologías
que nos facilitan el proceso de las consultas, genera las consultas y sus configuraciones (como sus
relaciones, uno a uno, uno a muchos, muchos a muchos) en una API de una manera más sencilla.

Para que backend se conecte a la base de datos, se puede realizar directamente con SQL o
utilizando un atajo llamado “ORM”. Un puente entre los lenguajes de programación y la base de
datos, ello facilita para realizar las consultas de manera más rápida o sin la necesidad de utilizar
SQL directamente. Por ejemplo, PHP se quiere conectar a la base de datos, ORM lo conecta no con
SQL sino con el mismo PHP, con el mismo lenguaje se conecta. El ORM transforma el PHP a SQL.
Tenemos los siguientes ORM:

EntityFramework en C#

TypeORM, Mongoose en JavaScript

HIBERNATE en JAVA

Doctrine, Eloquent en PHP

SQLAlchemist en Python

GORM en GO

Dapper en .NET

Django incluye un ORM en Python

ORM “mapea” (emparejar) objetos (POO) con el modelo relacional. Es decir, empareja tablas con
objetos. Una tabla se convierte en una clase (una plantilla), una fila o registro es un objeto
(instancia de una clase), y un campo en las propiedades de ese objeto.

Para Java BACKEND, tienes que aprender muchas técnicas de programación, patrones de diseños,
frameworks, algo que considero básico en Java enfocado al backend es lo siguiente.

Técnicas de programación: ORM la más importante para mí, esto con el framework Hibernate.

Patrones de diseño: los más básicos con los que se deben contar en el ámbito laboral son desde mi
punto de vista: DAO, DTO, Singleton.

Frameworks: Hibernate (que es una ORM como lo mencioné anteriormente) para el mapeo de la
Base de datos, JPA para la persistencia, Spring MVC, Spring boot.

Bases de datos: Lo incluyo por qué el 100% de la labor de un dev backend incluye también las
bases de datos, las más básicas son: SQL server, Oracle, en las relacionales, y en las no relacionales
solo MongoDB.
Devops: Te será también muy útil en algún punto un manejo general de despliegue de aplicaciones,
lo cual involucra saber trabajar con algún proveedor de servicios en la nube como AWS, Google
Cloud, IMBCloud, etc. Para conocer lo básico de como hacer los deploys y unit testing para probar
de forma automática tu código y también te ayuda a tener un código mas claro y las reglas de
negocio documentadas al menos en forma de pruebas.

AWS & DevOPS:


EC2, S3 & RDS

También podría gustarte