Millised sünkroniseerimisvahendid on Go-s goroutine'ide jaoks? Parandage võistluse näide, kasutades atomic
Golang
Kui sul oleks valida kahe ettevõtte või kahe meeskonna vahel, millele pööraksid tähelepanu ja kuidas valiksid?
Miks sul üldse tööjuures juht vaja on? Milleks?
Kuidas töötab hash-tabel? Milline on sisestamise ja lugemise keerukus? Go-s rakendamise omadused.
Kas sul on arusaam, millises meeskonnas sooviksid töötada? Milline see peaks olema?
Mis on Service üksus Kubernetesis?
Kas teil on kunagi juhtunud, et te olete midagi pikka aega teinud ja lõpuks see ei ole rakendatud või on see edasi lükatud virna?
Kui sageli tehti meeskonnas koodi ülevaatus?
On vaja projekteerida backend arhitektuur messengeri jaoks (Slack, Teams, Mattermost). Nõuded ja piirangud: ainult 1x1 vestlused, ilma grupivestlusteta ainult tekstisõnumid, ilma manusteta teenus on kättesaadav interneti kaudu kuni 10 000 kasutajat süsteemis sõnumid peavad jõudma kiiresti, mõne sekundi jooksul sõnumite järjekord peab säilima, duplikaate ei tohi olla võimalus on kerida vestlust tagasi, st. sõnumeid tuleb salvestada kliendid on mobiilseadmed, nende projekteerimine ei ole vajalik autentimise projekteerimine ei ole vajalik
Kuidas klient teab, milliseid sõnumeid ta sai, olles offline?
Koodi õigeks täitmiseks: sisendpunkt -- peamine funktsioon paketis 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("Viga: oodatud %q, saadud %q\n", exp, act) ok = false } } if ok { fmt.Println("Kõik testid läbisid edukalt") } }
Mis on sharding ja milleks seda kasutatakse? Kuidas valida sharding-võti taksoteenuse tabelite jaoks (juhid, kliendid, tellimused)?
Mis on HTTPS? Kuidas see erineb HTTP-st? Kuidas see kaitseb 'inimese keskel' rünnakute eest?
Mida praegu rohkem soovite: toote arendamist või platvormi arendamist?
Mis vahe on protsesside, lõimede ja goroutine'ide vahel Go keeles?
Tingimused On 3 entiteeti: käyttäjä, chat, viesti • Käyttäjällä on nimi ja rekisteröintipäivämäärä • Chatilla on nimi ja luomisajankohta • Viestillä on teksti, kirjoittaja ja luomisajankohta • Käyttäjä voi olla samanaikaisesti useissa chateissa • Viesti kuuluu pakollisesti yhteen chattiin, se ei voi kuulua useampaan chat-tilaan samanaikaisesti • Alue on kuvattava taulukoiden muodossa -- hajautettu -- message_count chat-tiloissa rajoitettu 100:aan --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 );
SELECT * c.id, -- vali select all chats (c.id, c.name) for all users by name ($1) where text > 'abc'
Räägi üldiselt projektist — mis see oli lõppkasutajale?
Kirjutage SQL-päring, mis näitab autorid, kellel on rohkem kui 10 raamatut (tabelid: autorid, raamatud, paljus-ühes suhted)
Kuidas Linuxis protsessi tappa? Mida teha, kui kill pid ei aita?