Golang
Proč není v implementaci napsán začátek podmínky pro kontrolu znaků?
Máš zkušenosti s gRPC a GraphQL? Povíš mi o nich.
typ Response rozhraní {} typ Backend rozhraní { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr obsahuje ip:port konkrétní instance func NewBackend(addr string) *BackendImpl typ Balancer struktura { // TODO backends []*BackendImpl index int mu sync.Mutex } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { pokud len(b.backends) == 0 { return nil, fmt.Errorf("Počet backends v poli je 0") } b.mu.Lock() index := b.index pokud b.index + 1 == len(b.backends) { b.index = 0 index = 0 } b.mu.Unlock() resp, err := b.backends[index].Invoke(ctx, req) return resp, err } // addrs obsahuje adresy všech vyvážených instancí func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs))
Jak sdílet paměť mezi gorutinami? V jakých případech je lepší použít Atomic a v jakých Mutex/RWMutex/SyncMap?
Jaké úkoly máš radši a jaké méně?
Můžeš uvést tři hlavní věci, na které je třeba při revizi kódu dávat pozor?
Jak je mapa v Go uspořádána?
Jak zkontrolovat zatížení CPU a paměti v Linuxu?
Co se týče specifikace startupu: není vždy jasné stanovení úkolů, někdy jsou rozmazané, je potřeba iniciativa a autonomie, zátěž může být nerovnoměrná. Jak se v tom cítíte?
Uveďte čtyři protokoly: HTTP, gRPC, WebDAV, ACSA — který je zbytečný?
Úkol škálování: služba B zažívá rostoucí zátěž od služby A. Co lze udělat?
Co je to zarovnání dat v Go?
Jaké jsou vaše očekávání od nového místa práce?
Napište úlohu v jazyce Go — praktická sekce (problémy z života vývojáře, bez algoritmů): vylepšit nebo opravit službu. Doba trvání — 1,5 hodiny.
Co je TLS a k čemu je certifikát?
Proč potřebujeme v této úloze WaitGroup?
Jak jste validovali zprávy z Kafka? Pokud zpráva neprošla validací, co se s ní dělo?
Čím se liší vyvažovač zátěže L4 od L7?
Jaké knihovny a frameworky byly použity v Go službě?
Čím se liší Kafka od RabbitMQ?