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.
- ¿Qué compañía está desarrollando la infraestructura GST para el gobierno, de modo que se realice toda la comparación de crédito de fondo?
- ¿Es común que los desarrolladores web front-end se conviertan en desarrolladores web back-end tarde o temprano?
- Cómo decidir qué idioma y marco de back-end usar para su proyecto
- Alguien me dijo que puedo usar C ++ para construir el backend, ¿cómo puede ser esto posible?
- Dado que la gente odia PHP para back-end, ¿qué es un mejor lenguaje de programación de back-end?
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.