Golang
Vorbește despre blocajele pesimiste și optimiste
Cum se implementează partea inversă — modelul Inbox pe partea serviciului de notificări? Cum se asigură idempotenta procesării evenimentelor?
La ce folosește simbolul de subliniere la importul pachetelor?
Ce este un deadlock și o condiție de cursă, cum se combate?
Reține o situație din experiența ta anterioară în care ai văzut că o soluție arhitecturală propusă de liderul de echipă sau arhitect nu era optimă. Ce ai făcut într-o astfel de situație? Ți-ai apărat punctul de vedere într-un fel sau altul?
Cum folosești rețelele neuronale în muncă?
Îmbunătățește soluția pentru top-10 în fiecare namespace, ținând cont că serviciile pot fi în diferite clustere, dar în același namespace (trebuie consolidate)
Toate documentele sunt în ordine (carte de identitate, documente oficiale)?
Spuneți-mi mai multe despre serviciul antifraudă: cu ce v-ați ocupat, pentru ce ați fost responsabili?
func (p *Pool) Stop() { p.mu.Unlock() // Acum este sigur să închidem canalul close(p.tasks) // semnal către lucrători: nu vor mai fi sarcini noi, citiți restul p.wg.Wait() // așteptăm finalizarea tuturor goroutine-urilor p.cancel() // anulăm contextul, dacă e cazul fmt.Println("Pool oprit.") } // ForceStop oprește forțat toți lucrătorii fără a aștepta finalizarea sarcinilor. // Lucrătorii vor fi întrerupți imediat prin intermediul contextului. func (p *Pool) ForceStop(timeout time.Duration) { fmt.Printf("Oprire forțată a pool-ului (timeout: %v)...\n", timeout) // Blochează adăugarea de sarcini noi p.mu.Lock() p.isOpen = false p.mu.Unlock() // Închide canalul pentru ca lucrătorii să nu mai ia sarcini noi close(p.tasks) // Anulează contextul – acest lucru va întrerupe toate sarcinile în curs p.cancel() // Oferă un timp limitat pentru finalizare done := make(chan struct{}) go func() { p.wg.Wait() close(done) }() select { case <-done: fmt.Println("Pool oprit forțat (toți lucrătorii au fost terminați)") case <-time.After(timeout): fmt.Println("Pool oprit forțat (timeout, pot rămâne goroutine suspendate)") } }
De la ce sumă luați în considerare oferta în ceea ce privește salariul?
A fost sosită o livrare în depozit, apoi au fost încărcate 5 bucăți din depozit în camion. Cum va decurge fluxul în sistemul de informații?
Ce se întâmplă cu datele la DELETE în PostgreSQL?
Spune-mi despre ultima ta experiență de muncă, stiva tehnologică și realizări
La ce serve contextul? Cum a fost folosit în practică?
Ce este pattern-ul Singleton? Este un pattern sau un antipattern?
Poți gestiona o panică într-unul dintre deferi?
A fost nevoie să scrieți noi microservicii de la zero pentru o funcționalitate nouă?
De ce se folosește segmentio/kafka-go, este o bibliotecă sau două? Cum funcționează producerul și consumerul?
Explică de ce și care (în legătură cu ieșirea codului)