Jakie środki synchronizacji goroutines są dostępne w Go? Napraw przykład z wyścigiem, używając atomic
Golang
Po co ci w pracy kierownik? Do czego?
Gdybyś musiał wybrać między dwoma firmami lub dwoma zespołami, na co zwróciłbyś uwagę i jak dokonałbyś wyboru?
Jak działa tablica haszująca? Jaka jest złożoność wstawiania i odczytu? Cechy implementacji w Go.
Czy masz wyobrażenie, w jakim zespole chciałbyś pracować? Jakie ono powinno być?
Czym jest jednostka Service w Kubernetes?
Czy zdarzyło Ci się robić coś przez długi czas, a ostatecznie nie zostało to wdrożone lub odłożone na stos?
Jak często przeprowadzaliście przegląd kodu w zespole?
Należy zaprojektować architekturę backend dla komunikatora (Slack, Teams, Mattermost). Wymagania i ograniczenia: Tylko czaty 1 na 1, bez czatów grupowych Tylko wiadomości tekstowe, bez załączników Usługa dostępna przez internet Do 10 000 użytkowników w systemie Wiadomości muszą być dostarczane szybko, w ciągu kilku sekund Należy zachować kolejność wiadomości, bez duplikatów Możliwość przewijania czatu wstecz, czyli przechowywania wiadomości Klienci to urządzenia mobilne, ich projektowanie nie jest konieczne Projektowanie autoryzacji nie jest konieczne
Jak klient dowiaduje się o wiadomościach otrzymanych, gdy był offline?
Aby poprawnie wykonać kod: punkt wejścia -- funkcja main w pakiecie main package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPassword(exp) act := RecoverPassword(h) if act != exp { fmt.Printf("Błąd: oczekiwano %q, otrzymano %q\n", exp, act) ok = false } } if ok { fmt.Println("Wszystkie testy zakończyły się sukcesem") } }
Czego teraz bardziej chcesz: rozwijania produktu czy platformy?
Jaka jest różnica między procesami, wątkami a goroutines w Go?
SELECT * c.id, -- wybierz wszystkie czaty (c.id, c.name) dla wszystkich użytkowników po imieniu ($1) where text > 'abc'
Czym jest HTTPS? Czym różni się od HTTP? Jak chroni przed atakiem 'człowiek w środku'?
Warunek Istnieją 3 encje: użytkownik, czat, wiadomość • Użytkownik ma nazwę i datę rejestracji • Czat ma nazwę i datę utworzenia • Wiadomość ma tekst, autora i datę utworzenia • Użytkownik może być jednocześnie w wielu czatach • Wiadomość musi należeć do czatu, nie może należeć do więcej niż jednego czatu jednocześnie • Należy opisać dziedzinę w formie tabel -- rozproszony -- message_count w czatach limit 100 --getShard(time zone) -> shard_id -> 1 --getShard(time zone) -> shard_id -> 2 --shard1 [1..100] --shard2 [101..200] CREATE TABLE users ( id int PRIMARY KEY, name varchar(255) NOT NULL, reg_at TIMESTAMP NOT NULL DEFAULT NOW() ); CREATE TABLE chats ( id int PRIMARY KEY, name VARCHAR(255) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT NOW(), message_count int NOT NULL CHECK <= 100 ); CREATE TABLE user_chats ( user_id int not null REFERENCES users(id), chat_id int NOT NULL REFERENCES chats(id), PRIMARY KEY (user_id, chat_id) ); CREATE TABLE messages ( id int PRIMARY KEY, chat_id int NOT NULL REFERENCES chats(id), author_id int NOT NULL REFERENCES users(id), created_at TIMESTAMP NOT NULL DEFAULT NOW(), text TEXT NOT NULL );
Opowiedz ogólnie o projekcie — co to było dla końcowego użytkownika?
Czym jest sharding i do czego służy? Jak wybrać klucz sharding dla tabel w serwisie taksówkowym (kierowcy, klienci, zamówienia)?
Napisz zapytanie SQL wyświetlające autorów, którzy mają więcej niż 10 książek (tabele: autorzy, książki, relacja wiele-do-wielu)
Jak zabić proces w Linux? Co zrobić, jeśli kill pid nie działa?