Milyen szakaszokban teszik fel ezt a kérdést különböző szervezetek interjú folyamatában?
Golang
Hogyan történnek a lekérdezések a PostgreSQL adatbázishoz?
Melyik volt a legnagyobb adatbázis projekt, amit meg kellett valósítanod vagy támogatnod kellett?
Hány írási kérés érkezett másodpercenként az adatokhoz?
Meg tudná magyarázni a gRPC működési elvét és fő jellemzőit?
Mely rétegbe helyezik a klienseket külső szolgáltatások és rendszerek esetén?
Melyik volt a leghosszabb ideig tartó projekt, amin dolgozott?
Milyen tapasztalatai vannak a több szálas és párhuzamos számításokat használó alkalmazások fejlesztésében?
Tudsz tájékozódni a hosztokról? Hány hoszt, hány konténer fut?
Hogyan szervezed meg az architektúrát egy kéréshez, amely végrehajtja az üzleti logikát, hív egy külső szolgáltatást (Google), és elmenti az eredményt az adatbázisba? Írd le rétegenként lefelé.
Milyen sok példányban/tárolóban működött a szolgáltatás?
Milyen elv alapján csökkentjük vagy növeljük a have számlálót?
Hogyan történik az adatok csatlakoztatása és megjelenítése a Grafanában?
func maxPlaces(arr []int) int { maxDistance := 0 prev, first := -1, -1 for i := 0; i < len(arr); i++ { if arr[i] == 1 { if first == -1 { first = i maxDistance = max(maxDistance, i) } else { maxDistance = max(maxDistance, (i - prev) / 2) } prev = i } } maxDistance = max(maxDistance, len(arr) - 1 - prev) return maxDistance }
Mi a különbség az L4-es és az L7-es terheléselosztó között?
Most dolgozik vagy sem, és milyen formátumban: iroda, hibrid, távoli?
Mekkora az algoritmus idő- és memóriaigénye?
Milyen teljesítménymutatókat használt az utolsó projektben végzett munkája értékelésekor?
""" A mozi helyei egy sorban vannak elrendezve. Egy éppen érkező néző kiválaszt egy helyet, hogy a lehető legtávolabb üljön a többi nézőtől a sorban. Vagyis, a helytől, ahol ülni fog, a legközelebbi nézőig tartó távolságnak maximálisnak kell lennie. Garantált, hogy mindig vannak szabad helyek, és már legalább egy néző ül. Írjon egy függvényt, amely adott egy helysort (nullák és egyesek tömbje), és visszaadja a (ülések közötti számú szabad helyet) a kiválasztott helytől a legközelebbi nézőig.
/* Szükségünk van adatok átadására egyik forrástól a másikhoz. A forrás kis csomagokban (~tíz rekord) adja az adatokat, míg a fogyasztó hatékonyabban működik nagyobb csomagokkal. Egy valós példa a Kafka típusú sorokból történő adatátvitel a Clickhouse adatbázisba. Forrás: - Szinte végtelen. - A forrás soha nem ad vissza több mint MaxItems rekordot egy Next hívásban. - Egy "munkamenet" (egy Pipe függvényhívás) során a forrás minden Next hívásnál új adatokat ad vissza. - Azonban újraindítás után a forrás a korábbi "megerősített" pozícióból kezd, amit cookie jelez. Ezért minden cookie érték, amit a Next visszaad, az adatok tárolása után, Commit hívással kell megerősíteni, ugyanabban a sorrendben, ahogyan a Next visszaadta. Fogyasztó: - Egyszerre nem dolgozhat több mint MaxItems-t. Alapszint: Implementálni kell a func Pipe(p Producer, c Consumer) error függvényt, ami adatokat olvas a forrásból, azokat MaxItems méretű bufferbe csoportosítja és a fogyasztóba menti, majd a forrásban a haladást megerősíti. */ const MaxItems = 9999 type Producer interface { // Next visszaad: // - egy csomagot az adatokból // - egy cookie-t, amit a feldolgozás végén kell megerősíteni // - hibát Next() (items []any, cookie int, err error) // Commit a feldolgozott csomag megerősítésére szolgál Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }