Golang
Με ποιες βάσεις δεδομένων εργάστηκες; Μέσω ORM ή εγγενών ερωτημάτων; Ποια εγγενή ερωτήματα έγραψες και σε ποιο επίπεδο;
func merge(chs ...<-chan int) <-chan int { }
Εξήγησε τι είναι η ευρετηρίαση σε βάσεις δεδομένων, γιατί είναι απαραίτητη, ποια είναι τα πλεονεκτήματα και τα μειονεκτήματα της.
Περιορίσατε το βάθος κύλισης; Αναφέρατε τη χρήση του bulk για την αρχική φόρτωση δεδομένων, αλλά πώς διαχειριζόσασταν τις σταδιακές ενημερώσεις όταν άλλαζε η τιμή ή το όνομα του προϊόντος; Πώς διασφαλίζατε τον συγχρονισμό του Elasticsearch;
Ο recruiter δεν καταλαβαίνει τις προτεραιότητες, απλώς λέει 'χρειάζομαι 300 υποψηφίους' — πώς το χειριζόμαστε;
пакет збереження 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 }
Πώς ονομάζεται η κατασκευή WITH ... AS (...) στη γραμμή 84 του ερωτήματος;
Τι τύπος πολυδιεργασίας χρησιμοποιείται στο Go; Πώς διακόπτει ο προγραμματιστής του Go τις goroutines;
Έχετε εργαστεί με συναλλαγές στο PostgreSQL και με ποια επίπεδα απομόνωσης;
Είσαι ακόμα σε επικοινωνία με άλλες εταιρείες; Υπάρχουν ήδη προσφορές;
Πες μου για τη δουλειά με το Kafka: τι συμβαίνει όταν συσσωρεύεται lag, ποιες είναι οι κίνδυνοι και πώς λύθηκαν;
Πες μου για μια περίπτωση όπου πρότεινες μια πρωτοβουλία και την υπερασπίστηκες.
Ποια εντολή εμφανίζει τον χώρο στο δίσκο;
κύριο πακέτο func main() { c := make(chan int) για εύρος 3 { select { προεπιλογή: println(1) περίπτωση <-c: println(2) περίπτωση c <- 1: println(3) } } }
Ποιοι είναι οι τύποι διαμεσολάβησης μεταξύ διεργασιών (IPC);
Πώς γινόταν η προσθήκη και η διαγραφή κανόνων αν ήταν μια μεγάλη switch-case;
Πώς πρέπει οι προγραμματιστές να χρησιμοποιούν τα εργαλεία AI για τη δημιουργία ή την ανασκόπηση κώδικα, και ποια βήματα είναι απαραίτητα για την επικύρωση της εξόδου τους;
Είναι αρκετή η προεπιλεγμένη βιβλιοθήκη net/http για να γράψετε έναν παραγωγικό web server σε καθαρό Go χωρίς frameworks;
Σε ποια γλώσσα προγραμματισμού εργάζεστε; Γιατί προέκυψαν δυσκολίες με τη σύνταξη;
Πώς σχετίζονται το blockchain και το θεώρημα CAP; Είναι πάντα διαθέσιμο το blockchain;