Cum să faci ca pe a cincea linie, unitatea adăugată prin append, să fie de asemenea vizibilă? Fără a schimba semnătura funcției fill.
Golang
Spune-mi mai multe despre povestea optimizării vitezei raportului: ce ai făcut, cu ce te-ai confruntat, care au fost dificultățile, cum le-ai rezolvat?
Serviciul în producție nu funcționează stabil mai mult de 5 minute. Am reușit să localizăm problema: există o funcție P() într-o bibliotecă terță parte care, cu o anumită probabilitate, provoacă un panic. Cum rezolvăm această problemă? Biblioteca este open source, codul poate fi vizualizat în vendor.
Cum să optimizezi o interogare SQL analitică grea pe o bază de date de producție mare?
```go func main() { wg := sync.WaitGroup{} for i := 0; i < 10; i++ { wg.Add(1) go func(wg sync.WaitGroup) { defer wg.Done() fmt.Println(i) }(wg) } wg.Wait() fmt.Println("some text") time.Sleep(1 * time.Minute) fmt.Println("some text2") } ```
Und este cel mai bine să declarați interfața — în locul implementării sau în locul consumului?
Secvența de ieșire a 100 goroutines va fi aceeași la fiecare rulare? De ce depinde?
Spune-mi pe scurt despre tine
Povestește despre experiența ta, sarcinile interesante, la ce îți place să lucrezi, de ce ești mândru.
Care este diferența dintre motoarele MergeTree, ReplicatedMergeTree și Distributed în ClickHouse?
Cunoști arhitectura Kubernetes, ce entități există, ce este control plane?
Să presupunem că sarcina este în versiunea 1.18 a Go. Ce se va schimba în comportamentul programului?
Cum devine posibilă rularea mai multor medii izolate pe o singură mașină locală (Docker/containere)?
Ce ai face dacă ai propune o soluție arhitecturală, dar liderul tehnic nu este de acord cu tine și ești sigur că ai dreptate?
```go func main() { wg := sync.WaitGroup{} wg.Add(8) for i := 0; i < 10; i++ { go func(wg *sync.WaitGroup, i int) { defer wg.Done() fmt.Println(i) }(&wg,i) } wg.Wait() fmt.Println("some text") time.Sleep(1 * time.Minute) fmt.Println("some text2") } ```
Prin ce s-a reușit reducerea timpului de procesare a operațiunilor de la 120 la 5 secunde?
Ce vom vedea pe ecran la pornirea programului dacă corectăm bug-ul cu wg (transmiterea unui pointer)?