Sobes.tech

Golang

Où est stockée la configuration de Redis si elle est sur une machine séparée?

Senior
Uzum
41

Quels critères sont importants pour toi lors du choix d'un travail ? Tes attentes salariales ?

Senior
X5
41

Comment créer au mieux une tranche avec une mémoire préallouée via make ? Pourquoi spécifier la capacité à l'avance ?

Senior
ClearWay
41

Pourquoi avez-vous démissionné?

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

Y a-t-il une date limite?

Senior
Яндекс
41

Avez-vous déjà aidé des collègues moins expérimentés ? Comment cela se passait-il généralement ?

Senior
АЭРО
41

Parlez-nous de votre expérience professionnelle et pourquoi vous avez décidé de chercher un emploi.

Middle+
Защита Инфо Транс z-it
41

// Corrigez le code pour que les requêtes soient concurrentes et que le code de réponse soit affiché // et en cas d'erreur, enregistrez-la et continuez le traitement package main import "net/http" var addrs = []string{"[link]"} func main() { for _, url := range addrs { resp, err := http.Get(url) if err != nil { log.Error(err) continue } // Traiter resp si nécessaire } }

Senior
ИП Ганус Александр Андреевич
41

Démontrez l'algorithme de recherche d'un élément dans un arbre binaire de recherche en utilisant un exemple (comparaison avec la clé du nœud, déplacement à gauche/droite).

Senior
МВидеоМВидео
41

HeadHunter peut envoyer une réponse via webhook, mais pas Avito — il faut le faire manuellement. Comment gérer cela?

Senior
OZONOZON
41

Avez-vous utilisé des déclencheurs en pratique?

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

Que attendez-vous de votre nouveau lieu de travail?

Senior
BetBoom
41

Quelle alternative à VACUUM FULL connais-tu qui libère également de l'espace, mais sans verrouillage strict ?

Middle+
plata
41

Pourquoi dans ce cas précis, gRPC a-t-il été choisi pour le service d'agrégation?

Middle+
А7
41

Dans votre CV, il est mentionné que vous avez accompagné 3 microservices en Golang. Qu'avez-vous fait d'autre en plus de la normalisation et de la validation des données ? S'agissait-il de support ou de développement ?

Senior
wilix
41

Comment obtiendriez-vous, en une seule requête, la liste des vendeurs non bloqués, en ayant une table avec tous les vendeurs et une autre uniquement avec les vendeurs bloqués?

Middle
Aliexpress
41

Qu'est-ce que le verrouillage optimiste?

Senior
Lenta Tech
41

Comment ClickHouse trouve-t-il la relation entre les colonnes?

Middle+
Магнум
41

Sur quelle base ont-ils effectué la partition dans Amazon Athena?

Middle
СБЕРСБЕР
41

package stockage 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
41
/412