Golang
Xulosa asosida sinxron davomiylik bilan xotira saqlash joylari va balanslar haqida gapiring.
Go'da Stop the World nima?
Go'da kanal nima va u qanday ma'lumotlarni uzatadi?
Xizmatlar o'rtasida qanday muloqot qilish — gRPC, REST yoki boshqa narsa?
Docker, Kubernetes bilan ishladingizmi? Pipeline qurish haqida gapirgansizmi?
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 }
Qanday qilib raqobat va parallelizm farq qiladi?
REST va Kafka xavfsizligi qanday ta'minlanadi? HTTPS/TLS nima?
Select operatori haqida gapirib bering, u nima qiladi va nima uchun kerak.
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?
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;
Nima uchun statusni enum qilish yaxshiroq va qachon string ishlatish yaxshiroq?
Redis umuman qanday muammoni hal qiladi?
HeadHunterda kuniga 16 mingta rezyume ko‘rish cheklovi bor, va keng filtr hamma narsani yutib yuboradi — qanday hal qilish mumkin?
Ma'lumotlar bazasida ma'lumotlar qanday saqlanadi?
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.
API dizayni prinsiplari
Siz 4 yil tajribaga ega ekaningizni aytdingiz, ammo 2024 yilda universitetni tugatgansiz. Siz oxirgi kursda o'qib, ishlayapsizmi?
Menga savolingiz bormi?
TCP va UDP qanday farq qiladi? Qaysi foydalanish holatlari mavjud?