¿Cuál es la diferencia entre "front-end" y "back-end"?
Las aplicaciones de cómputo de escritorio y web típicamente involucran un número de distintos elementos, todos trabajando juntos unos con otros. En la mayoría de los programas, la base de datos trabajará junto con el código de programación para entregar la lógica del sistema, mientras que la interfaz del usuario proveerá el acceso a dicha funcionalidad. Generalmente, los componentes del "front-end" son aquellos con los que el usuario interactúa, mientras que los componentes del "back-end" proveen los datos y los fundamentos de la lógica de la aplicación. Algunas tecnologías pueden utilizarse para el procesamiento tanto del "front-end" como del "back-end".
Componentes de la aplicación
Los desarrollos web comúnmente tienen componentes "front-end" y "back-end". En un sitio basado en datos, los componentes "back-end" incluyen la base de datos u otros medios de almacenamientos de información como pueden ser los archivos XML. El "back-end" puede también incluir código ejecutable del lado del servidor, utilizando lenguajes de programación como pueden ser PHP o ASP. El "front-end" de una aplicación web, con el que el usuario interactúa, es normalmente entregado en HTML, hojas de estilo (CSS por sus siglas en inglés "Cascading Style Sheet") y JavaScript. En ocasiones los programadores se especializan en tecnologías "front-end" o "back-end", pero para sitios pequeños pueden trabajar ambos lados de la aplicación.
Datos
Los datos de una aplicación normalmente son considerados parte del "back-end". Construir una base de datos para un sitio o un programa es comúnmente el primer paso en el proceso de desarrollo. Por ejemplo, un proyecto que incluya un sitio web para una compañía de venta al menudeo puede empezar por crear una base de datos de productos utilizando SQL o archivos XML. Los datos, por lo tanto, algunas veces son considerados los cimientos de un sitio o aplicación, con todo lo demás construido sobre ellos. El código del lado del servidor puede encargarse de la comunicación entre la base de datos y las tecnologías "front-end" de la aplicación, realizando consultas a los datos y enviando los resultados al navegador del usuario o interfaz.
Lógica
La lógica de la aplicación es generalmente considerada como parte del "back-end", aunque ciertos aspectos de ella pueden ser implementados como parte del "front-end". Por ejemplo, en un sitio web de ventas al menudeo, el código del lado del servidor puede implementar lo que debe suceder cuando un cliente hace una compra, en términos del procesamiento de los datos y el pago. Sin embargo, la interfaz del usuario para el sitio web, pudiera incluir también funciones del lado del cliente en JavaScript, para validar algunos detalles de los datos introducidos por el cliente, antes de enviarlos al servidor. El navegador de internet del usuario es el cliente, de manera que el código que corre del lado del cliente es ejecutado dentro de dicho navegador en la computadora del usuario, mientas que los programas "back-end" son ejecutados en el servidor web.
Interacción con el usuario
La interacción con el usuario es la actividad principal del "front-end" en cualquier aplicación. HTML, CSS y código JavaScript implementan dicha interacción para los sitios web, mostrando una representación visual de la funcionalidad de la aplicación. Los controles de usuario permiten a éste realizar tareas en la aplicación, típicamente utilizando, botones, listas desplegables, campos de texto, casillas de selección y muchos otros componentes. Para algunas aplicaciones, la misma tecnología puede ser utilizada tanto en el "front-end" como en el "back-end". Por ejemplo, en el lenguaje de programación Java puedes implementar tanto el diseño de la interfaz con el usuario, así como la conectividad con los datos.
Referencias
- W3Schools: Introduction to SQL (Introducción al SQL)
- W3Schools: Introduction to XML (Introducción al XML)
- W3Schools: PHP Introduction (Introducción a PHP)
- W3Schools: ASP Introduction (Introducción a ASP)
- W3Schools: HTML Introduction (Introducción al HTML)
- W3Schools: CSS Introduction (Introducción a las hojas de estilo)
- W3Schools: JavaScript Introduction (Introducción a JavaScript)
- Oracle: The Java Tutorials - What Can Java Technology Do? (¿Qué puede hacer la tecnología Java?