Golang
Kā pārtraukt procesu Linux un kā SIGTERM atšķiras no SIGKILL? Kas ir signāli un kādiem mērķiem tie tiek izmantoti?
Ierosiniet, kā to var noorganizēt REST stilā — kā pārsaukt šīs visas metodes?
Vai jums ir pieredze ar Docker? Vai jums ir pieredze Dockerfile rakstīšanā pašiem?
// Jautājums 3 // Aprakstiet, kādu uzdevumu šis kods risina // Kādas problēmas ir šajā risinājumā? // Kā jūs pārveidotu šo kodu? var c int var mu sync.RWMutex type Trace struct { // Daži lauki šeit } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { mu.Lock() defer mu.Unlock() c++ if c == 100 { go func() { sender.Send(tr) }() c = 0 } }
Ja sistēmā ir 24 kodoli, cik procesori būs GMP modelī?
Kādus rīkus izmantojat veiktspējas novērtēšanai un profilēšanai Go lietojumprogrammas izstrādes laikā?
len() — kāds ir garums?
Ierosiniet statusa modeli transakcijām maksājumu apstrādē. Kā darbojas atmaksāšana (refund)?
Kādās OSI modeļa līmeņos jūs strādājāt?
Kādi datu tipi var būt kartes atslēga?
Vai ir pakalpojums, lai bloķētu pārdevējus: viena funkcija pieņem pārdevēja ID un ieraksta to bloķēto sarakstā. Kā jūs īstenotu šo loģiku?
Kāpēc jūs izmantojāt atslēgvārdu defer?
Kas ir datu sacīkstes?
Kā tu pieej arhitektūras projektēšanai? No kurienes sāksi?
Kā tu izvēlēsies starp vairākām ofertām, ja tās būs vairākas?
Kādus kritērijus jūs izmantosiet darba devēja izvēlē? Kas jums ir visnozīmīgākais?
Ko jūs zināt par paketi sync/atomic?
Ko tieši jūs īstenojāt šajā mikroservisā?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(totalPayouts) // pievienot transakciju ja err != null { atgriezt err } partner, err := r.find(partnerID) ja err != null { atgriezt err } reklāmas devējs.Balance -= amount partner.Hold -= amount partner.Balance += amount ja err := r.save(reklāmas devējs); err != null { atgriezt err } ja err := r.save(partner); err != null { atgriezt err } r.totalPayouts++ atgriezt null } funkcija (r *PayoutRepository) find(id string) (Partner, error) { p := Partner{} err := r.db.QueryRow("SELECT * FROM partners WHERE id = " + id).Scan(&p) // pievienot $1 ja err != null { ja err == sql.ErrNoRows { atgriezt p, errors.New("partneris nav atrasts") } atgriezt p, err } atgriezt p, null }
Kāpēc jūs ienācāt tirgū, kāda ir pārejas motivācija?