Golang
Mekkora az algoritmus idő- és memóriaigénye?
Miért kell megszakítanunk a kontextust a szerkezetben? Miért kell befejezni a munkásokat? A Stop módszert akarjuk megszakítani.
Miért keresel most új munkahelyet? Mi nem tetszik a jelenlegi munkahelyeden?
Hova szeretnél növekedni, mivel dolgozni, milyen tapasztalatot szerezni?
Most szeretnénk a HeadHunter-re menni és szűrők szerint keresni jelölteket — hogyan építsük fel ezt az architektúrát?
Mi történik az adatokkal a második szeletben, ha az elsőből 5 kapacitással készült, majd a kapacitás 10-re növekszik?
Indexek a PostgreSQL-ben: mik azok, milyen típusokat ismersz, miért jobb a B-tree, mint a Hash?
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() }
Milyen feladatokhoz használtál goroutine-okat és csatornákat?
Mesélj a tervezési mintákról. Mi az a double-checked locking (kettős ellenőrzéses zárolás) és mire használják?
Van tapasztalata technikai szűrésekben vagy interjúkban való részvételhez?
Hogyan jutottál el a PostgreSQL optimalizálásához, és milyen optimalizációs módszereket alkalmaztál?
Miért hatékonyabbak a goroutine-ok, mint az operációs rendszer szálai?
Miért kell a térkép deklarációja a 15. sorban szögletes zárójelben lennie, nem pedig kapcsos zárójelben?
Mi az a szemafor?
Hogyan hasonlítjuk össze a térképen lévő elemeket? Hogyan ellenőrizzük, hogy két térkép egyezik-e?
Mi történik fizikailag a törölt rekordokkal a PostgreSQL-ben? Mikor törlődnek?
Milyen technológiáknak köszönhetően lehetséges a konténerizáció Linuxon?
Milyen általános kereskedelmi fejlesztési tapasztalataid vannak Go-ban?
Milyen szabályokat kell tudni a csatornákkal való munkáról fejlesztés közben (zárt, nyitott, mikor mit lehet csinálni)?