Golang
Miért használtál Redis-t a memória alapú cache helyett?
Mit valósítottál meg pontosan ebben a mikroszolgáltatásban?
2022-es munkába állásod óta ezen a projekten vagy, vagy váltottál projekteket?
Írjon egy függvényt, amely ellenőrzi, hogy egy karakterlánc palindróm-e. Az ellenőrzést csak az ábécé karaktereire (a-zA-Za-яА-Я) kell végezni, figyelmen kívül hagyva a kis- és nagybetűket (case-insensitive).
Még kapcsolatban vagy más cégekkel? Már vannak ajánlatok?
Milyen kézbesítési garanciákat nyújthat egy üzenetbroker? Legfeljebb egyszer, legalább egyszer, pontosan egyszer.
Milyen típusú közbenső folyamatok közötti kommunikáció (IPC) létezik?
Hogyan történt a szabályok hozzáadása és eltávolítása, ha ez egy nagy switch-case volt?
Milyen problémák merülhetnek fel az események üzenetközpontba történő küldése során, és hogyan oldhatók meg?
Van karrierút? Technikai fejlődés vagy menedzsment/csapatvezetés felé szeretnél fejlődni?
// 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 tartalmazza egy adott példány ip:port címét func NewBackend(addr string) *BackendImpl // addrs tartalmazza az összes kiegyensúlyozott példány címét func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs)) for _, addr := range addrs { backends = append(backends, NewBackend(addr)) } return &Balancer{ backends: backends, } }
Mi a fő fejlesztési nyelved és hány év tapasztalatod van?
Dolgozott összetett indexekkel?
Egyszerű banki rendszer modellezése: - `accounts` tábla: - `id`, - `owner_id`, - `currency`, - `created_at`. - `transactions` tábla: - `id`, - `account_id`, - `amount`, - `created_at`. **Elvárások:** 1. Írjon SQL-t a séma létrehozásához a szükséges korlátozásokkal (NOT NULL, FK, CHECK az `amount` nem null értékére). 2. Írjon lekérdezést: - szerezze meg a számla aktuális egyenlegét `account_id` szerint (az `amount` összegével). 3. Extra kihívás: támogassa a debit/kredit műveleteket (kettős bejegyzés). Tisztítás.
Van egy Go-ban lévő könyvtár — LRU, oda át lehet adni Any-t és beállítani TTL-t. Miért a Redis lett választva, és nem az?
Az x86 architektúrában a megszakítási utasítás két bájtot foglal el, de a 3-as számú megszakításnak van egy alternatív egybájtos változata. Miért volt erre szükség?
Terhelésekkel, az új szolgáltatások architektúrájával (kalkulációs lapok és díjak) kapcsolatos kérdések — hogyan értékeled ezt?
Miért fontolgatod most a jelenlegi munkahelyed elhagyását?
Hogyan adjunk hozzá kontextust a Stop metódushoz, hogy megszakíthassuk a feladatok várakozását időkorláttal?
Azt mondtad, hogy van egy szolgáltatásod, ami hallgat a Kafka-ra és frissíti a cache-t a Redis-ben, igaz?