Golang
Kako se u Go-u obrađuju greške? Šta je panika i kako je obraditi?
Maksimalno opterećenje: 25k čitanja / 5k zapisa u sekundi Obim novih podataka: 10 TB godišnje Maksimalni paralelizam: 120k istovremenih zahteva Godišnji rast korisnika: 30% Ciljno p99 kašnjenje: <150 ms za čitanja, <400 ms za zapise Ciljna dostupnost: 99.95% Vaš zadatak je da razvijete arhitektonsko rešenje koje će eliminisati trenutne probleme, obezbediti konzistentnost i otpornost na greške, kao i da implementira mehanizme praćenja za potpunu kontrolu životnog ciklusa narudžbine. Opisati mehanizam za upravljanje greškama, plan migracije sa trenutne arhitekture, i objasniti kako će predloženo rešenje poboljšati pouzdanost i transparentnost sistema.
Да ли имаш искуство у системском дизајну — размишљање о архитектури од нуле, заштита пред тимом?
Šta su errors.Is i errors.As, čemu služe i koji problem rešavaju?
Šta se dešava sa mapom kada nema dovoljno alocirane memorije? Šta je overflow-bucket i pod kojim uslovima se kreira?
Šta je JWT i Cookie, u čemu se razlikuju?
Čime se bavila tvoja ekipa i čime si se ti bavio?
Postoje 3 entiteta: korisnik, chat, poruka • Korisnik ima ime i datum registracije • Chat ima naziv i datum kreiranja • Poruka ima tekst, autora i datum kreiranja • Korisnik može biti u više chatova istovremeno • Poruka je obavezno povezana sa chatom i ne može biti povezana sa više od jednog chat-a istovremeno • Potrebno je opisati predmetnu oblast u obliku tabela
Šta te zanima? Koje zadatke želiš? Koju domenu?
Kako Go obezbeđuje sigurnost pri radu sa mapama pri konkurentnom pristupu i koje mehanizme sinhronizacije primenjuju u praksi?
Kako ćete rešiti problem ako servis vraća grešku 500?
Da li se mapa prosleđuje po referenci u funkciji u Go?
Koja je razlika između ML i LLM?
Zašto Go? Odakle si počeo, kako si došao do ovog jezika?
Да ли сте радили са Domain-Driven Design и чистом архитектуром?
Šta se dešava sa podacima pri DELETE u PostgreSQL?
Šta je inode u Linuxu?
Imamo 10 poruka u kanalu. Zatvaramo ga i počinjemo da čitamo — šta će se desiti u ovom slučaju?
Шта је важно за вас при избору новог радног места?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount 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 }