Golang
Mesélj a sync.Atomic-ról: mire használják, kellett már használnod a munkád során?
Mi az a tranzakció és mik az ACID elvek?
Mit adott vissza a keresőszolgáltatás?
Mennyi hoszton futott a szolgáltatás, és hány példány indult el?
Hogyan dolgozott a WebSocket-tal? Infrastruktúra beállítás szinten vagy csak kód szinten? Milyen technológiákat használt? Volt-e problémája a kapcsolódással az infrastruktúra szinten?
Tudná röviden leírni, hogy milyen szolgáltatásokból állt a rendszer, és hogyan kommunikáltak egymással?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) // tranzakció hozzáadása if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount // SELECT FOR UPDATE védelme partner.Hold -= amount partner.Balance += amount if err := r.save(advertiser); err != nil { return err } if err := r.save(partner); err != nil { return err } r.totalPayouts++ return nil }
Mit írsz Go-ban — mikroszolgáltatások vagy szolgáltatások?
Melyik mechanizmus van Go-ban: öröklődés vagy összetétel?
Hogyan kezelhetnénk külsőleg az olyan hibákat, amelyek feladatok során fordulnak elő, ha szeretnénk ezt megtenni?
Hogyan csatlakoztassuk a profiler-t Go-ban? Hogyan készítsünk profilokat?
Vannak jelenlegi fejlesztési prioritásaid vagy terveid?
Van különbség az végrehajtási időben, ha ugyanazt a függvényt összehasonlítjuk rendezett és rendezetlen tömbön? Mi az a branch prediction és a processzor pipeline?
Végeztek terheléses teszteket? Milyen volt a terhelés?
Hogyan számították az RPS-t — egyszerűen összeadták az összes fogantyú terhelését, vagy hogyan?
Mit csináltál a kézi feldolgozás után érvénytelen üzenetekkel? Technikai szempontból hogyan nézett ki?
Hogyan van szervezve a kommunikáció a mikroszolgáltatások között?
Most dolgozol?
Hogyan viszonyulsz a tesztekhez? Mire jók a tesztek?
Milyen kézbesítési garanciát támogat, ha a Kafka-ról beszélünk?