Golang
Osobiście testowałem, że Postgres przestawia kolumny i optymalizatorowi nie jest obojętne, w jakiej kolejności napiszesz zapytanie — sam je przebuduje jak trzeba. Co o tym myślisz?
Czy pracowałeś z transakcjami w PostgreSQL i z jakimi poziomami izolacji?
Jakie praktyki istnieją, aby zmniejszyć rozmiar obrazu Docker?
func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(totalPayouts) // dodaj transakcję 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) // dodaj $1 if err != nil { if err == sql.ErrNoRows { return p, errors.New("partner nie znaleziony") } return p, err } return p, nil }
Czym jest model OSI? Czym jest warstwa aplikacji?
Czego chcesz teraz — jakie masz oczekiwania wobec nowej pracy?
Jak zorganizowana jest komunikacja między mikroserwisami?
Czy istnieje ścieżka kariery? Chcesz rozwijać się technicznie czy w kierunku zarządzania/lidera zespołu?
Które z wymienionych środków synchronizacji musiałeś użyć w swoim projekcie?
Co oznacza nazewnictwo w stylu RPC? W naszym przypadku gRPC i REST — czym się różnią?
[imię] zapytał: czy pracowałeś z poziomami pamięci podręcznej — w pamięci i rozproszonymi? znasz kanały i select w Go?
Czy można włączyć profilera na produkcji?
Czy słyszałeś o rozproszonym śledzeniu?
Może zasugerujesz coś innego oprócz Mutex i sync.Map do ochrony zapisu?
Czy kiedykolwiek musiałeś śledzić czas, prowadzić ewidencję zadań w jakimś systemie?
Jak określić, czy produkt z około 1000 użytkownikami potrzebuje architektury mikroserwisów czy monolitycznej?
Na centrum handlowym jest parking: samochody wjeżdżają i wyjeżdżają, a po zakończeniu sesji parkowania trzeba pobrać opłatę. Jak to widzisz? Zaprojektuj system.
Jak uzyskać wynik 456, jeśli nie używasz wskaźnika (pointer receiver)?
Wyjaśnij technikę rozwiązania problemu maksymalnej odległości do najbliższego zajętego miejsca
1.21 func main() { var nums []*int for i := 0; i < 10; i++ { nums = append(nums, &i) } for _, v := range nums { go func() { fmt.Println(v) }() } }