¿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

La base de datos M (escrita en MUMPS) es una base de datos NoSQL que existe desde la década de 1960. Todavía se usa ampliamente como el back-end de hospitales (VA) y bancos de todo el mundo. Dada una reputación de alta velocidad y rendimiento, ¿por qué no ha ganado más popularidad en el mundo de la programación?

¿Qué se consideraría un logro en el desarrollo de back-end?

¿Puedo escribir un backend complejo usando R?

¿Qué necesita saber para el desarrollo web de back-end?

¿Por qué las publicaciones de trabajo de desarrollo front-end piden experiencia en un lenguaje back-end?

¿Qué parte de .NET Framework es para el backend?

¿Por qué los desarrolladores de back-end hacen que los desarrolladores de front-end se sientan insignificantes?

¿Es importante aprender un lenguaje de consulta estructurado para el desarrollo del backend?

¿Vale la pena elegir un entorno .NET en lugar de Python para desarrollar un back-end para un proyecto piloto?

He estado desempleado durante casi 1 año, estoy aprendiendo Go y quiero convertirme en desarrollador de backend, ¿qué debo hacer para conseguir un trabajo?

¿Cuál es el significado de la tecnología para el front-end y el back-end en un campo nuclear con el escenario indio?

¿Cuáles son las mejores tecnologías para el desarrollo front-end y back-end?

¿Por qué algunos desarrolladores de backend ven Node.js como un juguete y prefieren un lenguaje como Scala y Python para el backend?

¿Dónde está la línea entre el back end y el front end?

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