Golang
S kojim bazama podataka ste radili? Kroz ORM ili nativnim upitima? Koje nativne upite ste pisali i na kojem nivou?
func merge(chs ...<-chan int) <-chan int { }
Objasni šta je indeksiranje u bazama podataka, čemu služi, koje su njegove prednosti i mane.
Da li ste ograničili dubinu skrolovanja? Spomenuli ste korišćenje bulk za početno učitavanje podataka, ali kako ste upravljali inkrementalnim ažuriranjima kada se promenila cena ili naziv proizvoda? Kako ste obezbedili sinhronizaciju Elasticsearch-a?
Regruter ne razume prioritete, jednostavno kaže 'potrebno mi je 300 kandidata' — kako da to obradimo?
пакет за складиштење import ( "database/sql" "errors" "fmt" "time" "github.com/company/my-service/internal/event" "github.com/company/my-service/internal/metric" ) type Partner struct { ID string `db:"id" json:"id"` Balance float32 `db:"balance" json:"balance"` Hold float32 `db:"hold" json:"hold"` } type PayoutRepository struct { db sql.DB eventPublisher event.Publisher metricCollector metric.Collector totalPayouts int } func NewPayoutRepository() *PayoutRepository { db, err := sql.Open("postgres", "host=localhost user=postgres password=postgres dbname=affiliate") if err != nil { panic(err) } r := PayoutRepository{ db: db, eventPublisher: event.NewKafkaPublisher("localhost:9092"), metricCollector: metric.NewPrometheusCollector("localhost:9090"), } go func() { for range time.Tick(time.Minute) { _ = r.metricCollector.Send("TotalPayouts", r.totalPayouts) } }() return r } 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 } func (r *PayoutRepository) find(id string) (Partner, error) { p := Partner{} err := r.db.QueryRow("SELECT * FROM partners WHERE id = " + id).Scan(&p) if err != nil { if err == sql.ErrNoRows { return p, errors.New("partner not found") } return p, err } return p, nil } func (r *PayoutRepository) save(p Partner) error { _, err := r.db.Exec( fmt.Sprintf("UPDATE partners SET balance = %s, hold = %s WHERE id = %s", p.Balance, p.Hold, p.ID), ) if err != nil { return err } if err := r.eventPublisher.Publish("BalanceChanged", p); err != nil { return err } return nil }
Kako se zove konstrukcija WITH ... AS (...) u redu 84 upita?
Koja vrsta multitaskinga se koristi u Go? Kako planer Go prekida goroutine?
Zašto ste koristili Redis umesto in-memory keša?
Da li ste radili sa transakcijama u PostgreSQL i sa kojim nivoima izolacije?
Да ли још комуницираш са другим компанијама? Да ли већ имаш понуде?
Ispričajte o radu s Kafka: što se dešava kada se nakupi lag, koji su rizici i kako su riješeni?
Ispričaj mi o situaciji kada si predložio inicijativu i je odbranio.
Koja komanda prikazuje дискови простор?
главни пакет func main() { c := make(chan int) за опсег 3 { select { подразумевано: println(1) случај <-c: println(2) случај c <- 1: println(3) } } }
Koje su vrste međuprocesne komunikacije (IPC)?
Kako je bilo dodavanje i uklanjanje pravila ako je to bio veliki switch-case?
Kako bi trebalo da programeri koriste AI alate za generisanje ili pregled koda, i koje korake je potrebno preduzeti da bi se njihov izlaz validirao?
Da li je standardna biblioteka net/http dovoljna za pisanje produkcijskog web servera u čistom Go bez okvira?
Kako su povezani blockchain i CAP teorema? Da li je blockchain uvek dostupan?