Sobes.tech

Golang

Xulosa asosida sinxron davomiylik bilan xotira saqlash joylari va balanslar haqida gapiring.

Senior
OZONOZON
59

Go'da Stop the World nima?

Middle+
VK CloudVK Cloud
59

Go'da kanal nima va u qanday ma'lumotlarni uzatadi?

Middle
Сбертех
59

Xizmatlar o'rtasida qanday muloqot qilish — gRPC, REST yoki boshqa narsa?

Middle+
Magnit Tech
59

Docker, Kubernetes bilan ishladingizmi? Pipeline qurish haqida gapirgansizmi?

Middle+
А7
59

paket saqlash 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

Qanday qilib raqobat va parallelizm farq qiladi?

Middle
Effective Technologies
59

REST va Kafka xavfsizligi qanday ta'minlanadi? HTTPS/TLS nima?

Middle
СБЕРСБЕР
59

Select operatori haqida gapirib bering, u nima qiladi va nima uchun kerak.

Senior
sber tech
59

Tibbiy agregator bilan integratsiyaning ishonchliligini qanday oshirish va ma'lumotlarni yo'qotishni 2% dan 0,01% gacha qisqartirish mumkin bo'ldi? Bu tibbiyotda 2% ma'lumot yo'qotish juda ko'p emasmi?

Middle+
OZONOZON
59

grpc-server AddItemAndOrder metodini amalga oshiring: 1. Savatchaga mahsulotlar qo'shish 2. Savatcha yaratilganligi haqidagi faktni ehtimoliy iste'molchilarga xabar qilish majburiy 3. Savatcha tarkibi o'zgarganda, basket.Total = summa(soni * narx) qayta hisoblanishi kerak 4. Savatchadagi barcha elementlar ProductID kalitiga ko'ra noyob bo'lishi kerak 5. Savatcha buyurtma qilish uchun, uning holatini ordered ga o'zgartirish kerak 6. Tasdiqlangan savatchalarda o'zgartirishlar qilish mumkin emas Barcha ustunlar butun son bo'lgan jadval mavjud. Kodda quyidagi so'rov bor: select * from t1 where a > ? and b = ? and c != ? order by a;

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

Nima uchun statusni enum qilish yaxshiroq va qachon string ishlatish yaxshiroq?

Senior
Магнит Тех
58

Redis umuman qanday muammoni hal qiladi?

Senior
X5 techX5 tech
58

HeadHunterda kuniga 16 mingta rezyume ko‘rish cheklovi bor, va keng filtr hamma narsani yutib yuboradi — qanday hal qilish mumkin?

Senior
OZONOZON
58

Ma'lumotlar bazasida ma'lumotlar qanday saqlanadi?

Senior
Cloud.ru
58

Sizdə iki cədvəl var: orders (sifarişlər): order_id (sifarişin unikal identifikatoru) customer_id (müştərinin identifikatoru) order_date (sifariş tarixi) total_amount (ümumi sifariş məbləği) customers (müştərilər): customer_id (müştərinin unikal identifikatoru) customer_name (müştərinin adı) city (müştərinin şəhəri) Tapşırıq: Aşağıdakı məlumatları qaytaran SQL sorğusu yazın: Ümumi məbləği 1000 dollardan çox olan sifarişlər edən müştərilərin siyahısı (ad və şəhər). Hər bir müştəri üçün, bütün sifarişlərin ümumi məbləğini göstərin.

Senior
WildberriesWildberries
58

API dizayni prinsiplari

Senior
I-teco
58

Siz 4 yil tajribaga ega ekaningizni aytdingiz, ammo 2024 yilda universitetni tugatgansiz. Siz oxirgi kursda o'qib, ishlayapsizmi?

Middle
Aliexpress
58

Menga savolingiz bormi?

Senior
Cloud.ru
58

TCP va UDP qanday farq qiladi? Qaysi foydalanish holatlari mavjud?

Middle+
MAX LTD Group
58
/412