Sobes.tech

Өзгөрмөлөр үчүн эс тутум кайдан чыгат? Эс тутумду бөлүүчү эмне?

Senior
AstonAston
34

Кайсы маалыматтар базаларында иштедиңиз жана кайсы деңгээлде? PostgreSQL, Redis, ClickHouse тууралуу көбүрөөк маалымат.

Senior
ООО Дэстэн Партнерс
34

Linux консолун билесиңби?

Middle+
Лига Цифровой ЭкономикиЛига Цифровой Экономики
34

Күн сайын кайсы команда тизмесин колдонуп жатасың?

Middle+
VK CloudVK Cloud
34

Таза структурасы struct{} жөнүндө айтып бер. Колдонуу учурлары, канча жаддыкты ээлейт?

Senior
СБК ПАРУС
34

PostgreSQL транзакциянын изоляция деңгээлдерин билесизби?

Senior
FinFrame
34

CAP-теоремеси жөнүндө мага айтып бер

Middle+
СБЕРСБЕР
34

Nil sliceке append кылса паника болот беле?

Middle
WildberriesWildberries
34

Неге кеттиңиз?

Middle
МВидео/эльдорадо
34

Жаңы жумушка киргенде сен үчүн кызыл желе эмне? Мурас кодго кандай карайсың?

Middle+
VK music
34

Go'догу Garbage Collector кантип иштейт?

Senior
Prediva
34

Кайсы маалыматтар базаларында иштедиңиз? ORM аркылуубы же нативдүү суроолор мененби? Кайсы нативдүү суроолорду жаздыңыз жана кайсы деңгээлде?

Senior
wilix
34

Коддоо inline-оптимизациясы эмне? Канча убакытта болот жана ал өзгөрмөлөрдүн жайгаштырылышына кандай таасир этет?

Senior
А7
34

func merge(chs ...<-chan int) <-chan int { }

Middle
RWB
34

Маалыматтар базаларында индекстеүү деген эмне, эмне үчүн керек, анын артыкчылыктары жана кемчиликтери кандай.

Middle
VKVK
34

Go'догу эс тутуму моделин баянда — ал кандайча түзүлгөн?

Senior
AltDev
34

Сиз скролдун тереңдигин чектедиңизби? Сиз башлангыч маалымат жүктөө үчүн bulk колдонгондугуңузду айттыңыз, бирок баа же продукттун аты өзгөргөндө инкременталдык жаңыртууларды кантип иштеттиңиз? Elasticsearch менен синхрондоштурууну кантип камсыз кылдыңыз?

Middle
AndersenAndersen
34

Жалдоочу приоритеттерди түшүнбөйт, жөн гана айтат '300 талапкер керек' — муну кантип иштетсе болот?

Senior
OZONOZON
34

пакет сактагыч импорт ( "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
34

Goда кандай көп тапшырма түрү колдонулат? Go планировщику goroutines-ларды кантип үзөт?

Middle+
VK CloudVK Cloud
34
/411