Vuelve nuestro amigo Antonio Pérez al podcast para otro episodio compartido con su programa Full Stack Podcast. Antonio ya nos acompañó allá por el episodio 78 en un programa titulado Ruby on Rails frente a Python. En ese episodio Antonio nos estuvo contando cosas muy interesantes sobre Ruby on Rails y para este episodio hemos preparado el contenido alrededor del perfil de backend.
¿Qué habilidades clave debería tener un profesional del backend?
Para Antonio Pérez, un desarrollador de backend debe tener un perfil muy completo con unas habilidades muy distintas: Una capacidad alta de abstracción, conocimientos de arquitectura web y un conocimiento amplio de bases de datos.
Para Andros un backend debe tener la capacidad de leer y entender el contexto de lo que está realizando. Por eso es importante acudir a la documentación y a los manuales. Otro aspecto es entender que es normal que no se pueda saber de todo. Por último, Andros también coincide sobre la importancia de conocer de manera sólida las bases de datos.
David Vaquero coincide en la necesidad de tener una base muy sólida del protocolo HTTP. También que el backend entienda bien los datos que está manejando y cómo se mueven. Y también vuelve a coincidir con la gestión de datos, caché y optimización. Por último David hace mención al conocimiento de API y al Server Side Rendering.
Para finalizar Javier comenta que a menudo el perfil de backend se asocia al conocimiento de un lenguaje de programación. Otro aspecto a destacar es el conocimiento de la computación y los bases del sistema operativo, procesos, memoria y red.
Gran parte de los proyectos backend que se están ejecutando implican tareas de mantenimiento, monitorización y mejora. Con independencia del lenguaje, el backend necesita mucha investigación y aprendizaje.
La importancia de la gestión de las bases de datos y la memoria caché
Como comenta Antonio, el backend un última instancia es servir datos: cuando mayor conocimiento y eficacia en la capa de base de datos, mejor funciona la parte de backend. Conocer los motores de bases de datos, profundo conocimiento de SQL y conocer los ORM.
Andros habla sobre lo básico de entender la gestión de bases de datos y pone como ejemplo la aplicación de Notion y lo fundamental que es optimizar en la capa de datos. También incidimos en el conocimiento de los básicos como programación orientada a objetos, computación y redes. Una recomendación que hacemos es el libro The Secret Life of Programs publicado por No Starch Press.
Por último David destaca que el mundo de las bases de datos también incluye las tecnologías NoSQL y que hay que separar la teoría de base de datos con la práctica.
Escribir sentencias SQL vs ORM
Otro de los temas que han surgido en la conversación son los ORM vs la escritura de sentencias SQL. Antonio explica cómo en ciertas ocasiones escribir directamente las sentencias SQL resulta más productivo o eficaz que depender de un ORM. Antonio destaca Active Record de Rails como una herramienta flexible para trabajar con el acceso a datos. También hablamos brevemente algunos de los ORM más habituales.
El back end es la parte más cercana a la lógica de negocio y por tanto debes tener un conocimiento muy preciso y amplio de cómo funciona un negocio a
El papel del cloud en el backend y el serverless
Hay espacio para comentar cómo está evolucionando la computación en el lado de servidor con los servicios en la nube y más específicamente con el serverless tipo AWS Lambda. Con todo, son tecnologías que tienen un espacio determinado y que conviven con diferentes opciones en el lado de servidor. Antonio nos detalla algún ejemplo donde puede encajar este tipo de tecnologías. Otro aspecto a tener en cuenta es la optimización de esas funciones sin servidor porque pueden salir más caras que una arquitectura convencional cliente/servidor.
Tecnologías de backend a tener en el radar
Antonio nos cuenta algunas tecnologías a tener muy en cuenta como la contenerización, micro-servicios, serverless, entornos elásticos en la nube y la asincronía. También reserva un espacio para hablar sobre el papel de JavaScript en el lado servidor y sus reservas con respecto a sus ventajas en materia de asincronía. Por último Antonio nos ha contado sus proyectos futuros, como una web de cursos de desarrollo, estudiando tecnologías como Data Science y NoSQL.
Aunque existan las bases de datos NO SQL y las amemos, en las grandes empresas aún se utilizan bases de datos relacionales. En mi caso, trabajo hace más de 20 años para una empresa en Colombia y usamos Oracle en su versión 12C con Java y Spring.
En nuestro caso, hay mucho código o lógica de negocio en la base de datos en paquetes, procedimientos almacenados y funciones, y debemos convivir con esto, para algunos casos usamos mongo y vertica para proyectos de BI.
En conclusión, considero que no se puede demeritar las bases de datos relacionales, pues cada herramienta y tecnología tiene su razón de ser. Nunca es conveniente intentar matar una mosca a cañonazos. Saludos desde Bogota Colombia, me encanta escucharlos.
Me encantó el programa, lo que si va de mala leche la forma de Javier pelear con los invitados y siempre cortar a los demas.
Hola Daniel, me alegro que te gustara el episodio. No sabía que diera la impresión de pelear con los invitados. Quizás sea mi papel de llevar el guión del episodio y que no nos pasemos de tiempo. Saludos.
Lamento la confusión Javier, mi comentario era para David Vaquero. Tú y Andros son los mejores.
No te preocupes Daniel, también piensa que no son ganas de pisar a los demás, y que coordinarse en remoto cuesta. También es que es complicado dejar el micro cuando el tema te atrae. ¡Saludos!