Es necesario diseñar la arquitectura del backend para un mensajero (Slack, Teams, Mattermost). Requisitos y restricciones: solo chats 1x1, sin chats grupales solo mensajes de texto, sin adjuntos el servicio está disponible a través de internet hasta 10,000 usuarios en el sistema los mensajes deben entregarse rápidamente, en unos pocos segundos se debe mantener el orden de los mensajes, sin duplicados debe ser posible desplazarse hacia atrás en el chat, por lo que se deben almacenar los mensajes los clientes son dispositivos móviles, no es necesario diseñarlos no es necesario diseñar la autorización
Golang
Escriba una consulta SQL para mostrar los autores que tienen más de 10 libros (tablas: autores, libros, relación muchos a muchos)
¿Qué es la entidad Service en Kubernetes?
¿Cuántos años de experiencia comercial en desarrollo con Go?
Cuéntame sobre un problema técnico interesante o complejo que hayas resuelto
Tenemos una base de datos con contraseñas de usuarios, las contraseñas están hasheadadas (función hashPassword), y también se conoce el conjunto de caracteres que pueden ser utilizados en las contraseñas (variable alphabet). Nuestra tarea es implementar la función RecoverPassword para que recupere la contraseña a partir del hash conocido y TestRecoverPassword termine con éxito. Requisitos básicos: Cualquier método es válido package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() {
paquete main importar ( "crypto/md5" "fmt" ) var alfabeto = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecuperarContraseña(h []byte) string { return "" } func hashContraseña(entrada string) []byte { h := md5.Sum([]byte(entrada)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashContraseña(exp) act := RecuperarContraseña(h) if act != exp { fmt.Printf("Error: se esperaba %q, se obtuvo %q\n", exp, act) ok = false } } if ok { fmt.Println("Todas las pruebas pasaron con éxito") } }
¿Qué métodos HTTP existen? ¿Cuáles de ellos son idempotentes?
¿Cómo será el proceso de envío y recepción de mensajes entre dos clientes? Describe el flujo completo.
Revisión de código: caché en Go con mutex. Encuentra problemas y propone mejoras. Condición: carga de lectura/escritura 80/20.
¿Con qué bases de datos ha trabajado más intensamente?
paquete main importar ( "crypto/md5" "fmt" ) var alfabeto = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecuperarContraseña(h []byte) string { return "" } func hashContraseña(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashContraseña(exp) act := RecuperarContraseña(h) if act != exp { fmt.Printf("Error: se esperaba %q, se obtuvo %q\n", exp, act) ok = false } } if ok { fmt.Println("Todas las pruebas pasaron con éxito") } } Para la ejecución correcta del código: el punto de entrada -- función main en el paquete main Tarea: Implementar la función RecuperarContraseña, que restaura la contraseña original a partir del hash MD5, que consiste en caracteres del alfabeto dado.
¿Cómo implementar un apagado ordenado de un servicio Go en Kubernetes al desplegar una nueva versión?
Describa la estructura de una solicitud y respuesta HTTP. ¿Cómo se clasifican los códigos de respuesta?
¿Qué tablas y campos son necesarios en la base de datos PostgreSQL para este mensajero?
¿Por qué consideras nuevas ofertas? ¿Búsqueda activa o pasiva?
¿Qué quieres ahora? ¿Cuáles son tus expectativas para el nuevo trabajo?
¿Qué fue lo más difícil y lo más interesante al migrar de un monolito a microservicios?
¿Qué significa cuando el proceso en la parte superior muestra un 150% de CPU? ¿Es esto normal?
¿Cómo se entera el cliente de los mensajes recibidos mientras estaba desconectado?