Golang
LRU ma'lumotlarni ilova darajasida saqlaydi — kengaytirishda keshning xulq-atvori qanday qilib noaniq bo'lib qoladi?
cleanup ni amalga oshirishni odatdagi for sikli bilan range o'rniga tuzatib, tozalashning yakuniy mantiqini tushuntiring.
Agar yuqori prioritetli filtr juda keng bo'lsa va barcha byudjetni yutib olsa, qanday hal qilish mumkin?
Tranzaksiya nima va ACID tamoyillari qanday?
Iltimos, hozirgi ish joyingizda nima qilganingizni, qiziqarli vazifalarni bajarishingizni aytib bering.
Go'da satrlarni samarali tarzda qanday birlashtirish mumkin? Qaysi variantlar mavjud?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(advertiserID) // tranzaktsiya qo'shish if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount // SELECT FOR UPDATE ni himoya qilish 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 }
Xizmatlarda ko'p mantiq bor edimi yoki xizmatlar faqat ma'lumotlarni o'tkazadimi?
Linuxda qaysi portlar band ekanligini qanday ko'rish mumkin?
Qaysi holatda atomlar eng ko'p ishlatiladi?
Sinov yozdilarmi? Qaysi?
3. Murakkablik: debet/kreditni qo'llab-quvvatlash (ikkilamchi yozuv). Tozalash CREATE TABLE hisoblar ( id BIGSERIAL PRIMARY KEY, owner_id BIGINT NOT NULL, currency VARCHAR(3) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE TABLE tranzaksiyalar ( id BIGSERIAL PRIMARY KEY, account_id BIGINT NOT NULL REFERENCES hisoblar(id), amount NUMERIC(18,2) NOT NULL CHECK (amount <> 0), created_at TIMESTAMP NOT NULL DEFAULT now() ); CREATE INDEX idx_tranzaksiyalar_account_id ON tranzaksiyalar(account_id); SELECT COALESCE(sum(amount), 0) AS balance FROM tranzaksiyalar WHERE account_id = :account_id; ALTER TABLE tranzaksiyalar ADD COLUMN type VARCHAR(6) NOT NULL CHECK (type IN ('debit', 'credit')); ALTER TABLE tranzaksiyalar DROP CONSTRAINT tranzaksiyalar_amount_check, ADD CONSTRAINT tranzaksiyalar_amount_check CHECK (amount > 0); SELECT COALESCE( SUM(CASE WHEN type = 'credit' THEN amount WHEN type = 'debit' THEN - amount ) AS balance FROM tranzaksiyalar WHERE account_id = :account_id;
Siz Kubernetes uchun operatorlar yozdingizmi?
// User tuzilmasi uchun TTL (hayot davomiyligi) bilan keshni amalga oshiring. // Kalit sifatida User.ID dan foydalanish mumkin // Biz ko'p ipli xavfsiz bo'lishini xohlaymiz // O'qish operatsiyasi davomida muddati o'tgan yozuvlarni olishni istamaymiz // Muddati o'tgan yozuvlar o'chirilishi va saqlanmasligini xohlaymiz // API get/set/del
Tajribangiz haqida gapirib bering — bo'lishishni istagan eng qiziqarli lahzalar
Matn satrining palindrom yoki yo'qligini tekshiradigan funktsiya yozing. Palindrom - har ikkala yo'nalishda ham bir xil o'qiladigan belgi ketma-ketligi. Faqat a- я, А- Я harflarini tekshirish kerak, katta-kichik harf hisobga olinmaydi.
Siz boshidan arxitektura yaratdingizmi, tizim dizayni bilan ishladingizmi?
JSON va Protobuf o'rtasidagi farq nima?
Kubernetesda rolling update paytida nima bo'ladi?
sync.RWMutex qanday ishlaydi va uni qachon ishlatish kerak?