Golang
Come conservare i messaggi vocali in un'app di messaggistica come WhatsApp? Perché è meglio conservare le immagini in S3 piuttosto che in Postgres? Quali sono le opzioni di archiviazione delle immagini in Postgres?
Il consumatore riceve un messaggio da Kafka, lo accumula nel buffer, quando il batch è pronto, lo scrive e fa il commit. Cosa succede se il servizio si blocca nel momento della creazione del batch?
Quanti microservizi hai in Go e con quale frequenza ci sono compiti che coinvolgono due microservizi?
Condizione Ci sono 3 entità: utente, chat, messaggio • L'utente ha un nome e una data di registrazione • La chat ha un nome e una data di creazione • Il messaggio ha testo, autore e data di creazione • Un utente può essere in più chat contemporaneamente • Il messaggio appartiene obbligatoriamente a una chat, non può appartenere a più di una chat contemporaneamente • È necessario descrivere il dominio sotto forma di tabelle -- distribuito -- message_count nelle chat limite a 100 --getShard(time zone) -> shard_id -> 1 --getShard(time zone) -> shard_id -> 2 --shard1 [1..100] --shard2 [101..200] CREATE TABLE users ( id int PRIMARY KEY, name varchar(255) NOT NULL, reg_at TIMESTAMP NOT NULL DEFAULT NOW() ); CREATE TABLE chats ( id int PRIMARY KEY, name VARCHAR(255) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT NOW(), message_count int NOT NULL CHECK <= 100 ); CREATE TABLE user_chats ( user_id int not null REFERENCES users(id), chat_id int NOT NULL REFERENCES chats(id), PRIMARY KEY (user_id, chat_id) ); CREATE TABLE messages ( id int PRIMARY KEY, chat_id int NOT NULL REFERENCES chats(id), author_id int NOT NULL REFERENCES users(id), created_at TIMESTAMP NOT NULL DEFAULT NOW(), text TEXT NOT NULL );
Quale dei seguenti è un mezzo di sincronizzazione in Go? (canali, sync.WaitGroup, sync.Mutex, sync.Cond)
È stata utilizzata la parallelizzazione per accelerare l'elaborazione?
Da quale somma consideri le tue aspettative salariali?
Parlami della tua esperienza in infrastrutture e interazione con DevOps
Cos'è lo shutdown elegante e perché è necessario?
Qual è la differenza tra PARTITION BY e GROUP BY per una sottoquery?
Come avviene l'espansione (rehash) nelle tabelle Swiss?
Quante persone c'erano nel team e chi assegnava i compiti?
Quanto tempo prevedi di cercare un nuovo lavoro? Hai dei limiti di tempo?
Compito: «Ping-pong con timeout» Scrivi una funzione pingPong che: - Avvia due goroutine: una genera messaggi "ping", l'altra — "pong". - Le goroutine devono scambiarsi messaggi attraverso un canale comune rigorosamente a turno. - Lo scambio dura 3 secondi, dopodiché il programma deve terminare (shutdown ordinato). - Usa un contesto per cancellare con timeout. - Visualizza ogni messaggio sullo schermo insieme al tempo (in millisecondi dall'inizio). Esempio di output atteso: 0ms: ping
Cos'è il cambio di contesto delle goroutine? Chi lo esegue?
Da quale somma consideri l'offerta in base alle aspettative finanziarie?
Come funziona una tabella hash?
Raccontami del compito più difficile che hai svolto.
Hai parlato del modello di lettura con Redis. Redis veniva replicato tra i data center?
Possiamo passare uno slice come parametro a una funzione? Ci sono delle sfumature in questa modalità di passaggio?