Golang
Ismered a mintákat csatornákkal és goroutine-okkal való munkánál? Mesélj a fan-in, fan-out és másokról.
Az önéletrajzodban az szerepel, hogy 3 mikroservist kísértél Golangban. Mit csináltál még az adatok normalizálása és validálása mellett? Ez támogatás vagy fejlesztés volt?
Hogyan kérdeznéd le egy kérésben az összes eladót tartalmazó táblából azokat, akik nincsenek blokkolva, ha van egy táblád az összes eladóról és egy másik csak a blokkolt eladókról?
Mi az az optimista zárolás?
Hogyan találja meg a ClickHouse az oszlopok közötti kapcsolatot?
Milyen alapon történt a partícionálás az Amazon Athena-ban?
Hogyan valósítható meg atomikusan a rendelkezésre állás ellenőrzése és a rendelés létrehozása, amikor a logikát egy szolgáltatásba helyezzük?
Vállalati platforma logisztikai és működési adatok feldolgozására — Ön kifejezetten logisztikai útvonalakat állított össze és számolt ki?
Milyen indexet használjunk, ha a könyv címére szeretnénk keresni?
Hogyan sikerült növelni az integráció megbízhatóságát az orvosi aggregátorral, és csökkenteni az adatvesztést 2%-ról 0,01%-ra? És nem túl sok ez — 2% adatvesztés az orvostudományban?
Mesélj a csatornákról a Go-ban.
Te magad írtál valamit az observability-hez — metrikák, riasztások?
Mit szeretsz a Go-ban, és mi idegesít?
Volt-e a szolgáltatásnak valamilyen végpontja az működik-e most?
Milyen ajánlások vannak a Go modulok írásához?
Hogyan biztosították az adatok konzisztenciáját a projektben? Előfordultak eltérések?
Mi történik a jelenlegi kérésekkel Graceful Shutdown nélkül a folyamat befejezésekor?
Hol kell lennie a getExternalOrderIdFromCRM metódusnak? Hogyan strukturáljuk a projektet?
Személy szerint teszteltem, hogy a Postgres átrendezi az oszlopokat, és az optimalizáló nem számít, milyen sorrendben írod a lekérdezést — ő maga fogja átszerkeszteni, ahogy kell. Mit szólsz?
Mit fog a program futtatásakor megjelenni: func main() { counter := make([]int, 0, 1000) var wg sync.WaitGroup for i := 0; i < 1000; i++ { wg.Add(1) go func() { defer wg.Done() counter = append(counter, i) time.Sleep(10 * time.Millisecond) // Munka szimuláció }() } wg.Wait() fmt.Println(len(counter)) }