Sobes.tech

Golang

Mi az a csatorna a Go-ban, és hogyan továbbít adatokat?

Middle
Сбертех
59

Hogyan kommunikáljunk a szolgáltatások között — gRPC, REST vagy valami más?

Middle+
Magnit Tech
59

Dolgoztál már Dockerrel, Kubernetes-szel? Beszéltél a pipeline-ok építéséről?

Middle+
А7
59

tárolási csomag 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
59

Mi a különbség a verseny és a párhuzamosság között?

Middle
Effective Technologies
59

Hogyan biztosított a biztonság a REST és Kafka esetében? Mi az a HTTPS/TLS?

Middle
СБЕРСБЕР
59

Beszélj a select operátorról, mit csinál és mire való.

Senior
sber tech
59

Hogyan sikerült növelni az integráció megbízhatóságát az orvosi aggregátorral, és csökkenteni az adatvesztést 2%-ról 0,01%-ra? És nem túl sok ez — 2% adatvesztés az orvostudományban?

Middle+
OZONOZON
59

grpc-server AddItemAndOrder módszer megvalósítása: 1. Termékek hozzáadása a kosárhoz 2. Kötelező tájékoztatni a potenciális fogyasztókat a kosár létrehozásáról üzenetközvetítőn keresztül. 3. A kosár összetételének módosításakor újraszámolandó a basket.Total = összeg(mennyiség * ár) 4. A kosár összes elemének egyedinek kell lennie a ProductID kulcs szerint 5. A kosár megrendeléséhez meg kell változtatni annak státuszát ordered-re 6. Már megrendelt kosarakban nem lehet módosításokat végrehajtani Van egy táblázat, ahol minden oszlop egész típusú. A kódban van egy lekérdezés: select * from t1 where a > ? and b = ? and c != ? order by a;

Middle+
КуперКупер
59

Miért jobb enum-ként csinálni az állapotot, és mikor jobb stringet használni?

Senior
Магнит Тех
58

Milyen problémát old meg általában a Redis?

Senior
X5 techX5 tech
58

A HeadHunter napi 16 ezer önéletrajz megtekintési korlátja van, és egy széles szűrő mindent elfogy — hogyan oldjuk meg?

Senior
OZONOZON
58

Hogyan tárolódnak az adatok az adatbázisban?

Senior
Cloud.ru
58

Két táblád van: orders (rendelések): order_id (rendelés egyedi azonosítója) customer_id (ügyfél azonosítója) order_date (rendelés dátuma) total_amount (rendelés összértéke) customers (ügyfelek): customer_id (ügyfél azonosítója) customer_name (ügyfél neve) city (ügyfél városa) Feladat: Írjon SQL lekérdezést, amely a következő adatokat adja vissza: Az ügyfelek listája (név és város), akik összesen több mint 1000 dollár értékben adtak le rendeléseket. Minden ilyen ügyfél esetében mutassa meg az összes rendelés összegét.

Senior
WildberriesWildberries
58

API-tervezési alapelvek

Senior
I-teco
58

Azt mondtad, hogy 4 év tapasztalatod van, de 2024-ben végeztél az egyetemen. Egyidejűleg tanultál az utolsó évben és dolgoztál?

Middle
Aliexpress
58

Van kérdése hozzám?

Senior
Cloud.ru
58

Mi a különbség a TCP és az UDP között? Milyen használati esetek vannak?

Middle+
MAX LTD Group
58

Hogyan lehet hatékonyan összefűzni a stringeket Go-ban? Milyen lehetőségek vannak?

Senior
VKVK
58

Készen állsz most indulni, vagy vannak terveid/pihenés?

Middle
РедСофт
58
/412