Golang
Come sono raggruppati i codici di risposta HTTP e cosa significano?
Parla dei tipi di contesti in Go: Background, WithTimeout, WithCancel e altri.
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?
Perché si è scelto di partizionare per stato, se storicamente ci sono più licenziati che attivi?
Quale dei seguenti è un mezzo di sincronizzazione in Go? (canali, sync.WaitGroup, sync.Mutex, sync.Cond)
È stata utilizzata la parallelizzazione per accelerare l'elaborazione?
Quali sono le differenze tra HTTP/1, HTTP/2 e HTTP/3?
Cosa non ti piace del lavoro? Cosa ti dà più fastidio?
Come sarà l'interazione tra il client, il microservizio di autorizzazione e il microservizio del negozio usando JWT? E cosa cambierà senza JWT, con le sessioni?
Come rendere l'esecuzione di due worker() parallela invece che sequenziale (6 secondi → 3 secondi)?
Ha scritto documentazione?
Come hai fatto lo sharding in PostgreSQL? Quale algoritmo di hashing hai usato?
Proponi gli indici ottimali per una query con filtraggio sui campi location e gender (sesso) per le massime prestazioni
Oltre a Go, con cosa hai lavorato tra i broker di messaggi, database?
Cosa si è fatto esattamente con i duplicati dopo la scoperta? Dove sono stati puliti?
import "fmt" func maxDistants(arr []int) int { maxDist := 0 lastOne := -1 for i := 0; i < len(arr); i++ { if arr[i] == 1 { if lastOne == -1 { maxDist = i } else { dist := (i - lastOne) / 2 if dist > maxDist { maxDist = dist } } lastOne = i } } if arr[len(arr)-1] == 0 { dist := len(arr) - 1 - lastOne if dist > maxDist { maxDist = dist } } return maxDist } func main() { fmt.Println(maxDistants([]int{1, 0, 0, 0, 1})) }
Per quanto riguarda la specificità della startup: non sempre c'è una definizione chiara dei compiti, a volte sono sfocati, è richiesta iniziativa e autonomia, il carico di lavoro può essere irregolare. Come ti senti in questo?
Su quale progetto o prodotto stai lavorando attualmente?
Perché vorresti cambiare lavoro?
Cosa verrà visualizzato in ogni print? func fn(a []int) { a[2] = 5 a = append(a, 6) fmt.Println(a) // a = append(a, 7) a[0] = 5 fmt.Println(a) // } func main() { a := make([]int, 0, 5) for i := 0; i < 4; i++ { a = append(a, i) } fn(a[:3]) fmt.Println(a) // }