Jaki był największy projekt bazy danych, który musiałeś zrealizować lub utrzymywać?
Golang
Na jakich etapach procesu rozmowy kwalifikacyjnej w różnych organizacjach często zadaje się to pytanie?
Jak wykonywane są zapytania do bazy danych PostgreSQL?
W której warstwie umieszczane są klienci dla usług zewnętrznych i systemów?
Czy możesz wyjaśnić zasadę działania gRPC i jego główne cechy?
Ile zapytań o zapis w sekundzie trafiało do danych?
Na ilu instancjach/kontenerach działała usługa?
Jakie masz doświadczenie w tworzeniu aplikacji wykorzystujących wielowątkowość i obliczenia równoległe?
Na jakiej zasadzie należy zmniejszać lub zwiększać licznik have?
Czy możesz się zorientować w hostach? Ile hostów, ile kontenerów jest uruchomionych?
Jak odbywa się podłączenie i wyświetlanie danych w Grafanie?
Jaki był najdłuższy projekt, nad którym pracowałeś?
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 }
Jak zorganizować architekturę dla żądania, które wykonuje logikę biznesową, wywołuje zewnętrzną usługę (Google) i zapisuje wynik w bazie danych? Opisz warstwami od góry do dołu.
Jak wizualnie lub algorytmicznie określić, że element jest unikalny w strukturze danych Map?
""" Miejsca w kinie są ustawione w jednym rzędzie. Nowo przybyły widz wybiera miejsce, aby siedzieć jak najdalej od innych widzów w rzędzie. To znaczy, odległość od tego miejsca do najbliższego widza powinna być maksymalna. Gwarantuje się, że zawsze są wolne miejsca i że już siedzi co najmniej jeden widz. Napisz funkcję, która na podstawie podanego rzędu miejsc (tablicy zer i jedynek) zwróci odległość (liczbę przerw między fotelami) od wybranego miejsca do najbliższego widza. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 """
/* Musimy przesłać dane z pewnego źródła do odbiorcy. Źródło dostarcza dane w małych partiach (~dziesięć rekordów), podczas gdy odbiorca działa bardziej efektywnie z większymi partiami. Przykład rzeczywisty to przesyłanie danych z kolejek typu Kafka do bazy danych Clickhouse. Źródło: - Praktycznie nieskończone. - Źródło nigdy nie zwraca więcej niż MaxItems rekordów w jednym wywołaniu Next. - W ramach jednej "sesji" (jednego wywołania funkcji Pipe), źródło zwraca nowe dane przy każdym Next. - Jednak po restarcie, źródło zacznie od poprzedniej "potwierdzonej" pozycji, wskazywanej przez cookie. Dlatego *każda* wartość cookie zwrócona przez Next, po zapisaniu danych w odbiorniku, musi być potwierdzona wywołaniem Commit, w tej samej kolejności, w jakiej zostały zwrócone przez Next. Odbiornik: - Nie może przetworzyć więcej niż MaxItems naraz. Podstawowy poziom: Wymaga zaimplementowania funkcji func Pipe(p Producer, c Consumer) error która czyta dane ze źródła, grupuje je w bufor o rozmiarze nie większym niż MaxItems i zapisuje do odbiornika, a następnie potwierdza postęp w źródle. */ const MaxItems = 9999 type Producer interface { // Next zwraca: // - pakiet elementów do przetworzenia // - cookie do potwierdzenia po zakończeniu przetwarzania // - błąd Next() (items []any, cookie int, err error) // Commit służy do oznaczenia pakietu danych jako przetworzony 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 }
Jakie wskaźniki wydajności użyłeś do oceny swojej pracy w ostatnim projekcie?
Czy teraz pracujesz, czy nie, i w jakim formacie: biuro, hybrydowy, zdalny?
func countSubs(s string) int { result := 0 left := 0 hm := make(map[rune]int) n := len(s) for right := 0; right < n; right++ { hm[s[right]]++ for hm[s[right]] > 1 { hm[s[left]]-- if hm[s[left]] == 0 { delete(hm, s[left]) } left++ } result += (right - left + 1) } return result }