Golang
Vai esat strādājis ar transakcijām PostgreSQL un ar kādiem izolācijas līmeņiem?
Uzrakstiet funkciju, kas pārbauda, vai virkne ir palindroms. Pārbaudei jānotiek tikai uz alfabēta rakstzīmēm (a-z, A-Z, а-я, А-Я), neņemot vērā lielās vai mazās burtu lielumu (case-insensitive).
Kā jūs izlemjat, strādājot ar kanāliem, vai izmantot buferētus vai nebuferētus kanālus?
Kādas ir Transactional Outbox sistēmas galvenās daļas?
Kādas piegādes garantijas var sniegt ziņojumu starpnieks? Visvairāk vienu reizi, vismaz vienu reizi, tieši vienu reizi.
Aprakstiet segmentācijas pakalpojuma biznesa loģiku: kā darbojās datu apstrādes pipeline?
Kā ir organizētas Swiss Tables Go?
Vienmērīgas sadales tests neizdodas: backend[0] gaidīja 5 zvanus, saņēma 10, backend[1] gaidīja 5 zvanus, saņēma 0
Jāapraksta bibliotēkas modelis. Ir 3 entītijas: "Autors", "Grāmata", "Lasītājs". -- Fiziiski ir tikai viena grāmata un tā var piederēt tikai vienam lasītājam. -- Viena grāmata var būt ar vairākiem autoriem.
Kāda problēma var rasties, sūtot notikumus uz ziņojumu brokeri un kā to atrisināt?
Vai ir karjeras ceļš? Vai vēlaties attīstīties tehniski vai vadības/komandas līdera virzienā?
Uzdevums: Ko kods parādīs? ```go package main import "fmt" func main() { a := []int{1, 2, 3, 4, 5} b := a[:2] b = append(b, 100) fmt.Println(a, b) } ```
// TODO backends []*BackendImpl index int mu sync.Mutex func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { b.mu.Lock() index := b.index if b.index + 1 == len(b.backends) { b.index = 0 index = 0 } b.mu.Unlock() resp, err := b.backends[index].Invoke(ctx, req) b.mu.Lock() defer b.mu.Unlock() b.index += 1 return resp, err } // addr turi konkretu ip:port func NewBackend(addr string) *BackendImpl // addrs yra visų balansavimo pavyzdžių adresai func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs)) for _, addr := range addrs { backends = append(backends, NewBackend(addr)) } return &Balancer{ backends: backends, } }
Kāda ir jūsu galvenā izstrādes valoda un cik gadu pieredzes jums ir?
Vai esat strādājis ar sastāvdaļu indeksiem?
Modelējiet vienkāršu bankas sistēmu: - `accounts` tabula: - `id`, - `owner_id`, - `currency`, - `created_at`. - `transactions` tabula: - `id`, - `account_id`, - `amount`, - `created_at`. **Prasības:** 1. Rakstiet SQL, lai izveidotu shēmu ar nepieciešamajiem ierobežojumiem (NOT NULL, FK, CHECK uz `amount`, lai tas nebūtu nulle). 2. Rakstiet vaicājumu: - iegūt pašreizējo konta bilanci pēc `account_id` (summa `amount`). 3. Papildu grūtības: atbalstīt debetu/kredītu (divkāršs ieraksts). Tīrīšana.
Kopumā, kādu projektu vēlētos, lai palielinātu redzamību: ar kādām pieejām, procesiem un uzdevumiem?
Go ir bibliotēka — LRU, kur var ievadīt Any un iestatīt TTL. Kāpēc tika izvēlēts Redis, nevis tā?
Vai ir jautājumi par intervijas posmiem?
Kā transakcijas līmenī datu bāzē nosūtīt tikai vienu grupu, ja vairākas grupas vienlaikus reaģē uz signālu ātras reaģēšanas sistēmā?