Sobes.tech

Golang

Vertel me over je ervaring en wat je deed op je vorige baan

Middle+
X5 groupX5 group
35

Wat is de inline-optimisatie van de compiler? Wanneer gebeurt het en hoe beïnvloedt het de plaatsing van variabelen?

Senior
А7
35

Vertel me over het geheugermodel in Go — hoe is het opgebouwd?

Senior
AltDev
35

Welke soorten automatische tests hebt u gebruikt?

Senior
Магнит Тех
35

pakket opslag 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 }

Senior
Pasul LTD
35

Hoe comfortabel is volledig remote werken?

Senior
Flant
35

Kan het maxSegment-algoritme verbeterd worden?

Senior
Яндекс
34

Je hebt een batch van 500 berichten uit Kafka gehaald, maar kunt ze niet opslaan in de database. Wat gebeurt er? Hoe lang kun je deze 500 berichten verwerken?

Middle+
ВайлдберрисВайлдберрис
34

Waarom heb je Redis gebruikt in plaats van een in-memory cache?

Senior
OkkoOkko
34

Ben je sinds je indiensttreding in 2022 op dit project, of ben je van projecten veranderd?

Senior
Магнит Тех
34

Hoeveel mensen zaten er in het team?

Senior
AndersenAndersen
34

Schrijf een functie die controleert of een string een palindroom is. Controleer alleen op alfabetische tekens (a-zA-Za-яА-Я), zonder rekening te houden met hoofdletters of kleine letters (case-insensitive).

Middle
VKVK
34

Hoe bepaal je bij het werken met kanalen tussen gebufferde en ongebufferde kanalen?

Senior
AndersenAndersen
34

Wat zijn de belangrijkste onderdelen van het Transactional Outbox-systeem?

Middle+
МВидеоМВидео
34

Welke leveringsgaranties kan een berichtbroker bieden? Hooguit één keer, minstens één keer, precies één keer.

Middle
АО Медиа Эффект
34

Hoe zijn Swiss Tables georganiseerd in Go?

Senior
I-teco
34

Wat is DNS en hoe werkt het?

Middle
VKVK
34

De test op uniforme verdeling slaagt niet: backend[0] verwachtte 5 oproepen, kreeg 10, backend[1] verwachtte 5 oproepen, kreeg 0

Senior
VKVK
34

Het is nodig om het bibliotheekmodel te beschrijven. Er zijn 3 entiteiten: "Auteur", "Boek", "Lezer". -- Fysiek is er maar één boek en kan alleen bij één lezer zijn. -- Een boek kan meerdere auteurs hebben.

Senior
Холодильник.руХолодильник.ру
34

Welke problemen kunnen zich voordoen bij het verzenden van gebeurtenissen naar een berichtbroker en hoe los je ze op?

Middle+
КуперКупер
34
/412