Golang
Come sono state distribuite le attività all'interno del team?
Perché l'approccio di Go alla concorrenza è migliore rispetto ad altri linguaggi?
Parli della sua esperienza con sistemi ad alta intensità. Ha mai dovuto risolvere problemi di distribuzione e bilanciamento del traffico?
Se l'operazione dura 10-12 minuti e c'è una scrittura attiva e i dati cambiano, non ci sono stati effetti collaterali?
Qual è la complessità dell'algoritmo in termini di tempo e memoria?
Parla dei livelli di isolamento delle transazioni: Read Uncommitted, Read Committed, Repeatable Read, Serializable.
[nome] ha chiesto: parlami delle primitive di sincronizzazione in GoLang.
Ora vogliamo andare su HeadHunter e cercare candidati per filtri — come architettarlo?
Da dove provenivano i dati? Li inviavano i logistici o come?
Cosa si può fare per evitare l'evacuazione della mappa in un servizio ad alta load?
Cos'è il Load Average, come verificarlo e a cosa prestare attenzione?
I dati del contenitore vengono eliminati dopo l'arresto?
func (c *Client) Send(ctx context.Context, messages []Message, maxWorkers int) error { sem := make(chan struct{}, maxWorkers) var wg sync.WaitGroup var resultErr error var once sync.Once for _, msg := range messages { wg.Add(1) go func(msg Message) { defer wg.Done() sem <- struct{}{} defer func() { <-sem }() body, err := json.Marshal(msg) if err != nil { once.Do(func() { resultErr = err; cancel() }) return } req, _ := http.NewRequestWithContext( ctx, http.MethodPost, c.url, bytes.NewReader(body), ) req.Header.Set("Content-Type", "application/json") resp, err := c.httpClient.Do(req) if err != nil { once.Do(func() { resultErr = err; cancel()}) return } defer resp.Body.Close() if resp.StatusCode >= 500 { once.Do(func() { resultErr = fmt.Errorf("server error") cancel()}) return } c.sentCount.Add(1) time.Sleep(time.Second) }(msg) } wg.Wait() }
Per quali compiti hai usato goroutine e canali?
Come hai influenzato il cambiamento del processo con l'analisi?
Come è strutturata tecnicamente in generale la piattaforma HR?
Come hai gestito la situazione quando gli account durante i trasferimenti finivano su shard diversi?
Come convertire un numero nel sistema binario?
Come sei arrivato al momento di ottimizzare PostgreSQL e quali metodi di ottimizzazione hai usato?
Implementa una funzione che accetta []any e delta int. È necessario aumentare di delta solo le prime occorrenze di numeri unici (int). Altri tipi e numeri ripetuti devono essere lasciati invariati. La funzione deve restituire la lista aggiornata e 2 numeri: updated – quanti numeri unici sono stati modificati, duplicates – quanti elementi numerici sono risultati duplicati func IncrementUniqueIntsInMixed(xs []any, delta int) ([]any, int, int) { // il tuo codice } // Esempio: xs := []any{1, "a", 5, "b", 1, 0, 5} u, d, s := IncrementUniqueIntsInMixed(xs, 3) // xs == []any{4, "a", 8, "b", 1, 3, 5} // u == 3 // numeri unici: 1, 5, 0 // d == 2 // numeri duplicati: secondo 1, secondo 5