¿Qué son los desarrolladores full stack, front-end y back-end? ¿Qué hacen cada uno de ellos?

Un desarrollador front-end es el que trabaja en el lado del cliente, normalmente el navegador web. Trabaja con HTML, CSS y Javascript, y a menudo usa bibliotecas y kits de herramientas como jQuery, Bootstrap, jQuery UI, Dojo y muchos más.

Un desarrollador de back-end es el que trabaja en el código del lado del servidor y también en la base de datos. Él / ella escribe código que toma los datos enviados al servidor por el cliente y realiza acciones de soem con eso. Podría estar almacenándolo en una base de datos, recuperando registros de una base de datos, manipulando los datos o lo que se solicite. El desarrollador de backend tiene muchos más idiomas y herramientas disponibles. Algunos de los más comunes son PHP, C #, Java y Javascript, así como SQL, MySQL o Mongo DB para la base de datos. Pero hay muchos otros servidores y herramientas disponibles. Personalmente, trabajo mucho con el servidor IBM Domino, así que uso Lotusscript como el lenguaje del lado del servidor y la propia base de datos NoSQL de Domino.

Un desarrollador de pila completa está haciendo codificación tanto front-end como back-end, él / ella trabaja con la pila completa (cliente, servidor, base de datos) y a menudo incluso trabaja con gráficos usando, por ejemplo, Photoshop o Illustrator.

Sin embargo, la mayoría de los desarrolladores parece centrarse en el front-end o el back-end.

Estos títulos de trabajo se utilizan con el desarrollo web. Para comprender estos términos, debe comprender un poco sobre la arquitectura de Internet. Aquí hay una imagen que explica al respecto:

Navegador web (cliente)
Hace una solicitud a un servidor web (como Google) y muestra la respuesta al usuario.

Servidor web
Obtiene la solicitud del cliente y envía la respuesta al cliente.

Ahora volvamos a la pregunta original. Según el área tecnológica, donde trabaja un desarrollador de software, se le llama desarrollador Full Stack, Front-End y Back-End.

Desarrollador front-end
trabajos relacionados con tecnologías del lado del cliente como (JavaScript, HTML, CSS, etc.)

Desarrollador de back-end
trabajos relacionados con tecnologías del lado del servidor como (servidores como Apache, PHP, Python, JAVA, bases de datos, cachés, etc.)

Desarrollador Full Stack
Pueden trabajar en ambos lados cliente y servidor.

Crédito de imagen: cómo funciona la web

Típicamente, una pila de soluciones es una jerarquía de tecnologías que comprenden un servicio o solución de software. Puede exponer esta pila si considera la solicitud / respuesta de una sola transacción, tomando nota de todos los componentes que se tocan. Normalmente, esto se dividirá entre front-end, muck-in-the-middle y back-end.

Los front-end suelen ser un navegador, y programar un navegador no es tan difícil. Hay un montón de tecnologías para elegir, pero por lo general el rol está muy centrado en la presentación de datos, la gestión de pantallas y notificaciones. El protocolo moderno es http / https, que se implementa fácilmente a través de toneladas de lenguajes y marcos. El volumen de la transacción suele ser un solo usuario (aunque puede haber millones de usuarios). Por supuesto, su front-end podría involucrar servicios web, lo cual es un poco más riguroso pero si está utilizando servicios web existentes; como la autorización de crédito, eso es bastante fácil.

Si está desarrollando un servicio web, esto es más o menos la “basura”. Necesitará algo para alojar el servicio web, generalmente un servidor de aplicaciones, y ahora está en programación java y .net profunda, así como cualquier otro lenguaje heredado potencial y protocolo de solicitud / respuesta (C, C ++, CORBA, RPC, ABAP , etc.) La habilidad aquí está en la arquitectura y la implementación de sistemas escalables con altos volúmenes de transacciones. El servidor de aplicaciones en sí mismo llamará a un cierto número de back-end para cumplir con la solicitud de transacción.

El back-end suele ser una base de datos (todo tipo de tecnologías aquí), pero también puede haber cualquier cantidad de tecnologías intermedias “middleware” como MQ, TIBCO, CICS, Vitria), y potencialmente otra capa de servicios web. La programación de SQL y la gestión de bases de datos es altamente especializada, además de emplear cualquiera de las tecnologías de middleware. Básicamente, está creando sistemas de mensajería asíncrona y síncrona que admiten docenas de cientos de aplicaciones, solicitando información de la base de datos. Detrás de este middleware hay más a menudo un mainframe, que aloja la base de datos (DB2, IMS, etc.). La programación de mainframe no es como trabajar con middleware, muck o front-end, y usará COBAL, RPG, JCL. Gran parte del mainframe está relacionado con el procesamiento por lotes, mientras que el front-end trata del procesamiento interactivo, y hay casos especiales en los que esos roles se invierten. No construyes muchas aplicaciones nuevas en el mundo de mainframe, sino que realizas mucho mantenimiento.

Por supuesto, puede ejecutar Java en el mainframe, así como en Linux y servidores de aplicaciones (WAS, JBOSS, etc.), ¡pero ese giro es una pregunta para otro día!

Las aplicaciones web tienen dos partes: una vista que se ejecuta en el navegador del cliente y un modelo de datos que reside en el servidor. Ambas partes pueden volverse muy complejas, pero debido a que se comunican a través de una interfaz estrechamente especificada (por ejemplo, una API RESTful), la complejidad general del programa se mantiene bajo control.

  • El desarrollo front-end generalmente consiste en validación de entrada preliminar, animación, diseño y mucha programación asincrónica (principalmente coordinando eventos de UI y de red).
  • El desarrollo de back-end debe ocuparse de la seguridad, escalabilidad, disponibilidad y consistencia de los datos de la aplicación. En las aplicaciones web en tiempo real (Quora, Facebook, etc.) también tiene que ocuparse de enrutar mensajes entre clientes.
  • Full-stack es, lo adivinaste, ser capaz de hacerlo todo. ¿Qué es un desarrollador de Full Stack? (Gracias a Peter Roca por el enlace).

El desarrollo front-end consiste en validaciones de entrada preliminares, diseño y trabajos relacionados con tecnologías del lado del cliente como (JavaScript, HTML, CSS, etc.)

El desarrollo de back-end consta de un servidor, una aplicación y una base de datos (donde se almacenan todos los datos). Funciona relacionado con tecnologías del lado del servidor como (servidores como Apache, PHP, Python, JAVA, bases de datos, cachés, etc.)

Desarrollo de pila completa Pueden funcionar en ambos lados cliente y servidor.

More Interesting

¿Qué piensan los desarrolladores web de los bootcamps y sus graduados?

¿Debería un desarrollador front-end tomar un trabajo y contratar a un desarrollador back-end para hacer el resto?

¿Qué idioma tiene un futuro más prometedor (Elixir, Golang o JavaScript del lado del servidor)?

Además de aprender frameworks de backend, bases de datos e implementación, ¿qué tipo de habilidades necesito para convertirme en desarrollador de backend?

Sé cómo desarrollar aplicaciones simples de Android que almacenan datos localmente. ¿Qué habilidades de software debo aprender a continuación para crear aplicaciones que puedan manejar la sincronización en línea?

En la programación, ¿implementan el front-end o el back-end primero?

¿Es posible usar un mismo código de servidor de servidor web para el sitio web y la aplicación móvil sin REST?

Debe desarrollar un backend para una red social con solo Java, Phyton y Node.JS. ¿En qué partes del back-end escribirías en qué idioma?

¿Se puede integrar big data con back end dev?

¿Es común pasar de una carrera de front-end a una carrera de back-end a una carrera de programación (no web)?

¿Cuáles son las mejores soluciones alojadas para el desarrollo front-end en la actualidad? Me gustaría aprender algo como Angular, pero quiero una plataforma alojada que gestione la base de datos y el código de fondo. Sé JavaScript muy bien.

¿Cuál es la mejor introducción a la programación de back-end?

¿Cuáles son los lenguajes de programación más demandados en el Reino Unido?

¿Qué debo elegir? ¿Desarrollo front-end o desarrollo back-end?

¿Es común que los desarrolladores web front-end se conviertan en desarrolladores web back-end tarde o temprano?