Golang
Czy można jednocześnie uruchamiać wiele goroutine w jednej aplikacji?
Czy może opowiedzieć o głównym obszarze działalności ostatniej organizacji, w której Pan/Pani pracował/a?
Jaki zakres testowania kodu zwykle realizujesz za pomocą testów jednostkowych?
Który komponent Kafka zapewnia zapobieganie ponownemu odczytowi tych samych wiadomości?
Jak można wykryć wyścigi warunków w kodzie programistycznym?
Jak można zapobiec wzajemnym blokadom w środowisku wielowątkowym?
Opisz swoje doświadczenie w stosowaniu automatycznego generowania kodu w projektach.
W jakim przypadku następuje automatyczny wybór opcji domyślnej w konstrukcji select w języku programowania?
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() }
Wyjaśnij koncepcję korzystania z puli wątków do obsługi zadań w aplikacji wielowątkowej.
Opowiedz o wzorcach projektowych. Czym jest double-checked locking (blokada z podwójnym sprawdzaniem) i do czego służy?
Czy masz doświadczenie w uczestnictwie w przesiewach technicznych lub rozmowach kwalifikacyjnych?
Jak rozwiązać problem przepełnienia kontenera plikami logów w Dockerze?
Jak można zwiększyć szybkość wyszukiwania elementu po kluczu w tablicy danych?
Jak można uniknąć błędów przepełnienia bufora w programie?
Jakie kroki należy podjąć, aby przenieść monolityczną aplikację do architektury mikroserwisów?
Wyjaśnij mechanizm automatycznego zbierania śmieci w języku Go i jak zarządza pamięcią.
Jak można potwierdzić autentyczność cyfrowego certyfikatu?
Czy mapy (Map) mają możliwość określenia swojego aktualnego obciążenia lub pojemności?
Jakie rodzaje błędów lub niezgodności mogą się pojawić, gdy transakcje są wykonywane jednocześnie?