¿Los sitios que tienen un back-end dinámico usan los mismos idiomas que el front-end del sitio / plataforma?

Los sitios como sfdc y uber generalmente están organizados en niveles, donde cada nivel es un cliente para un nivel inferior y un servidor para un nivel superior. El navegador o la aplicación móvil sería el nivel más alto y, en general, “el cliente”. Los clientes interactúan con los servidores a través de la interfaz de programación de aplicaciones de los servidores, o API, que especifica el formato de las solicitudes y sus respuestas correspondientes.

Los front-end están escritos en el lenguaje apropiado para el entorno: JavaScript para un navegador, Objective-C para iOS y Java para Android. Los servicios de fondo generalmente se escriben en una amplia variedad de idiomas, dependiendo de la función principal del servicio de servicios de fondo. Los lenguajes de implementación populares son Java, Ruby (en Rails), Python, etc. Otros servicios de fondo son bases de datos como SQL y MongoDB y tienen sus propios entornos de programación.

Debido a que las aplicaciones como las que mencionó tienen una escala masiva y un alto rendimiento, las personas involucradas en la escritura de los diferentes niveles generalmente tienen un conocimiento profundo del dominio apropiado para su idioma y entorno, y es poco probable que un solo programador tenga el conocimiento para implementar algo como Uber Más típicamente serían equipos de programadores colaboradores que trabajan en navegadores, clientes móviles, servidores de bases de datos y servicios.

Una vez que se han creado los niveles, trabajan entre ellos a través de las API. Por ejemplo, cuando inicia sesión en una aplicación en su dispositivo móvil, generalmente realiza una llamada a un servidor en un formato específico solicitando información de autenticación, y el servidor responde con información sobre si el usuario debe ingresar credenciales. Después de que el usuario se autentica, el cliente generalmente llama a una API para obtener información de la cuenta sobre el usuario que podría tomar la forma de un llamado mensaje GET que solicita información del usuario para una ID de usuario específica. El servidor debe asegurarse de que la solicitud específica que se atiende proviene de un cliente válido (y no de algún hacker que se entrelaza), en nombre de un usuario autorizado (credenciales actuales y válidas), lo cual es un gran tema en sí mismo.

La mayoría de las API actuales se definen utilizando métodos http, incluso aunque solo sea para intercambiar datos. Es decir, una API especificará que una solicitud HTTP GET (también utilizada por los navegadores) emitida a [código] http://api.server.com/v1/users/ {… con tokens y claves de acceso correctamente presentados devolverá un http mensaje que contiene información típicamente en formato XML o JSON. Los clientes luego usan los verbos http post y put para crear nuevos y modificar objetos existentes respectivamente. En el caso de salesforce, el cliente puede llamar a un servidor y solicitar una lista de contactos que pertenecen a la oportunidad actualmente abierta en el dispositivo. El cliente emitiría una solicitud GET con las credenciales apropiadas adjuntas, el servidor a su vez solicitaría un nivel de base de datos más bajo para obtener los registros de interés, empaquetarlos en un formato seguro para Internet y enviarlos de vuelta al cliente. El software en el cliente desempacaría el mensaje y mostraría la lista al usuario.

Crear una aplicación como Uber es mucho más trabajo de lo que parece en la superficie. Hay capas de servicios e interfaces de usuario para escribir para cada punto de contacto del usuario final. Cada capa debe tener una API documentada para que otras capas puedan aprovechar sus servicios. Todo eso debe hacerse de una manera que haga que la experiencia del usuario sea sublime.

More Interesting

¿Quién gana más dinero: desarrollador web front-end o back-end?

¿Cuáles son las funcionalidades más importantes en las que debería centrarme mientras estoy aprendiendo el desarrollo de back-end?

¿Cuáles son las subcategorías de la programación de back-end?

¿Qué tecnología frontend recomiendas aprender de un desarrollador web de backend?

¿Es una pérdida de tiempo aprender el desarrollo frontend porque casi todos los mejores graduados de CS están trabajando en backend?

¿Qué idiomas serían preferibles para el desarrollo front-end y back-end?

¿Cuál es la mejor opción para tecnología web o front-end (HTML, CSS, JS, etc.) y DBMS o back-end?

¿Qué debe saber todo desarrollador web de back-end?

¿Por qué Facebook no reescribe su back-end en Node.JS?

No estoy completamente seguro de cuál es la diferencia entre CMS y un lenguaje de fondo + base de datos.

¿Por qué alguien piensa que es genial convertirse en un desarrollador de backend y trabajar en la nube?

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

Dadas mis circunstancias, ¿en qué dirección debo ir: desarrollo web front-end o desarrollo back-end o desarrollo de aplicaciones?

Entre los desarrolladores front-end y back-end, ¿qué conjuntos de habilidades son más importantes para uno que para el otro?

Para una plataforma de aplicación móvil de comercio electrónico, ¿cuál es el mejor marco web de back-end: Node.js o Django?