Golang
Чӣ гуна алмаши сигнол бо ёрии каналҳо дар системаи барномасозӣ амалӣ мешавад?
Чӣ гуна дар Go кор бо ҳолатҳои паникӣ ва коркарди хатоҳо, ки аз ҳолатҳои фавқулодда пайдо мешаванд, амалӣ карда мешавад?
Чӣ тавр бо дубльҳо пас аз ошкор кардан кор мекарданд? Дар куҷо тоза мекарданд?
Кадом усул ва воситаҳоро барои таҳлил ва муайян кардани сабабҳои мушкилоти борбардорӣ дар системаҳо истифода бурдед?
Кадом командҳоро одатан дар системаи оператсионӣ Linux истифода мебаред?
Кадом роҳҳо метавонанд барои таъмини бехатарии ҷараён дар кор бо slices дар муҳити бисёрҷараёнӣ истифода шаванд?
Ҳангоми кор бо nil slice дар забони барномасозӣ кадом амалҳо иҷозат дода мешаванд?
Ҳикояи вазифаи душворе, ки шумо тавонистед бо навиштани скрипт барои системаи Linux ҳал кунед
Чӣ гуна метавон миқдори маълумоти дар кеш нигоҳ доштаашударо танзим кард?
Ҳамчун ягона мутахассиси Backend дар гурӯҳ фаъолият карданро тайёр кардан
Омӯзиши асосии истифодаи навъи sync.Map дар Go чист?
Кадомҳо ва анти-паттернҳо дар санҷиши воҳидӣ чист? Чӣ тавр фаҳмидан, ки санҷишҳо хубанд?
Афзалият ва нуқсонҳои истифодаи кеш дар системаҳо чӣ гунаанд?
func Exclude(a, b []int) []int { set := make(map[int]struct{}) for _, v := range b { set[v] = struct{}{} } result := make([]int, 0) for _, v := range a { if _, ok := set[v]; !ok { result = append(result, v) } } return result } ข้อผิดพลาดในการคอมไพล์ # command-line-arguments ./main.go:39:32: ข้อผิดพลาดด้านไวยากรณ์: การขึ้นบรรทัดใหม่ที่ไม่คาดคิด, คาดว่าจะเป็น { หลัง if clause
Оё то ҳол бо мушкилотҳо дар иҷрои ҳамкориҳо байни хидматҳои гуногун рӯ ба рӯ шудаед?
Чӣ гуна интиқоли парча (slice) ба функсия дар забони барномасозӣ анҷом дода мешавад?
Паттерни Saga чист?
Чаро Testcontainers нагирифтанд?
/* Морате пренети податке из извора одређеном потрошачу. При томе извор испоручује податке у малим пакетићима (~ десетине записа), а потрошач ради ефикасније са већим батчевима. Реалан пример - испорука података из редова типа Kafka у базу података Clickhouse. Извор: - Условно бесконачан. - Извор никада не враћа више од MaxItems записа у једном позиву Next. - У оквиру једне "сесије" (једног позива функције Pipe), извор сваки пут враћа нове податке за сваки позив Next. - Међутим, након поновног покретања, извор почиње од претходне "потврђене" позиције, одређене cookie-јем. Стога, *свака* вредност cookie-а коју је вратио позив Next, након чувања података у примаоцу, мора бити фиксирана позивом Commit, и то строго у истом редоследу у којем су враћени од стране Next. Прималац: - Не може обрадити више од MaxItems у једном кораку. Основни ниво: Потребно је реализовати функцију func Pipe(p Producer, c Consumer) error која чита податке из извора, групише их у буфер величине не већој од MaxItems и чува у примаоца, након чега фиксира напредак у извору. */ const MaxItems = 9999 type Producer interface { // Next враћа: // - пакет ставки за обраду // - cookie за потврду када је обрада завршена // - грешку Next() (items []any, cookie int, err error) // Commit се користи за означавање пакета података као обрађеног Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }
Оё ҷадвал бо (id PRIMARY KEY, data JSON) барои ҷустуҷӯ дар PostgreSQL бо калид хуб аст?