¿Qué hace un desarrollador de “Full Stack”, en términos simples?

Ser un desarrollador de pila completa significa que se siente cómodo trabajando con las tecnologías de back-end y front-end. Más específicamente, significa que puede trabajar con lenguajes del lado del servidor, bases de datos, HTML, CSS, JavaScript y todo lo demás.

Desglosaré las tecnologías requeridas por un desarrollador de pila completa en estos días:

  • Tecnologías de back-end : en términos de lenguajes de programación, debe sentirse cómodo con al menos un lenguaje del lado del servidor (PHP, NodeJS, Ruby, Python, C #). A continuación, debe estar bastante familiarizado con al menos una tecnología de administración de bases de datos (MySQL, PostgreSQL, Redis, MongoDB, Cassandra). Finalmente, debe saber lo suficiente sobre los servidores web (Apache, Nginx) y saber cómo configurar una aplicación o un sitio web.
  • Tecnologías front-end : HTML, CSS y Javascript como imprescindibles. Junto con ellos, como desarrollador de pila completa, debe saber sobre diseño receptivo, consultas de medios, MENOS, SASS, compatibilidades de navegadores, etc. También debe saber cómo comunicarse con el back-end usando AJAX o WebSockets. Es una era de Javascript, por lo que es bueno tener conocimiento en cualquier marco de JavaScript (se requiere lectura).
  • Administración del sistema : debe saber cómo funciona el alojamiento en la nube (AWS, Rackspace, Digital Ocean) y cómo configurar una instancia. No deberías ser competente con él porque es una ciencia completa, pero deberías ser capaz de manejarlo. Además, debe estar familiarizado con la configuración del protocolo HTTPS, DNS, monitoreo del servidor, etc. El almacenamiento en caché también es importante, Barniz, proxy inverso y Memcached.
  • Herramientas de desarrollo web : el control de versiones (Git, SVN) se debe tener en estos días. Además, para evitar las diferentes incompatibilidades del entorno, es bueno tener las herramientas de virtualización: pueden ahorrar mucho tiempo de depuración. Debe saber cómo configurar Virtual Box y Vagrant al menos.

Como desarrollador de pila completa, no necesita dominar todas esas áreas y tecnologías, pero debe sentirse cómodo con ellas.

Solía ​​ser que solo había un tipo de desarrollador web y construyeron todo.

Para usar una analogía de otra industria, piense en Henry Ford. Diseñó su primer automóvil solo, desde el chasis hasta los asientos y los paneles de la carrocería. Se veía así:

Fuente: Desarrollo del Modelo T- Cronología

Eso funcionó por un tiempo, pero eventualmente diseñar el cuerpo comenzó a ser un trabajo por derecho propio. Los que solían ser simples paneles laterales comenzaron a curvarse, tanto para acomodar maquinaria nueva como para ser visualmente más impactantes. Finalmente, había equipos separados trabajando en el motor del automóvil y la carrocería, que produjeron el Modelo A:

Fuente: https://blog.caranddriver.com/wp

Lo mismo sucedió con las aplicaciones web. Las personas que crearon el back-end construirían una interfaz simple en la página que interactuaría con el back-end. Pero a medida que pasaba el tiempo, el front-end dejó de ser una simple tapa en un back-end. Los idiomas se desarrollaron para que las aplicaciones pudieran ejecutarse en el navegador para mostrar y procesar información de forma dinámica. ¡Incluso puede ejecutar el sistema operativo Linux en su navegador!

Si deja un comentario en esta página, está utilizando un editor de texto que se ejecuta en su navegador. Requiere diferentes idiomas para ejecutarse que un programa que se ejecuta en el back-end y probablemente fue construido por un equipo de front-end dedicado. Hoy en día, equipos separados a menudo diseñan los programas que impulsan el sitio y los programas que organizan la información que usted ve.

Entonces, ¿dónde entra un desarrollador de pila completa en todo esto?

Volvamos al ejemplo de un diseñador de automóviles. Ahora hay dos grupos diferentes de personas que diseñan el automóvil. El primero diseña el motor y el chasis, básicamente todo lo que lo hace funcionar. Ahora hay un grupo separado que está a cargo de la apariencia del automóvil. Pero a veces hay problemas entre los dos grupos.

Digamos que tienes que decidir dónde colocar el tubo de escape. Puede ser más fácil sacarlo del motor en la parte delantera, pero eso no se verá tan bien. Necesita a alguien que comprenda tanto el funcionamiento interno del automóvil como el diseño del exterior para saber si es mejor encontrar una solución interna (pegue el tubo de escape en otro lugar, tal vez en la parte posterior) o una solución externa (encuentre la manera para que un tubo de escape que salga del capó del automóvil) se vea bien.

Del mismo modo, un desarrollador de pila completa es útil porque saben cómo funcionan tanto el front-end como el back-end de una aplicación web. Pueden trabajar en ambos equipos, pero podrán decir si es mejor resolver un problema en el back-end o en el front-end.

Los desarrolladores de pila completa también pueden ser útiles para equipos pequeños. Al igual que Henry Ford construyendo un auto completamente encendido. Un desarrollador de stack completo o un equipo de ellos sabrá lo suficiente sobre las tecnologías front-end y back-end para crear una aplicación web completamente por su cuenta sin ningún soporte especializado.