Sobes.tech

Golang

Millised sünkroniseerimisvahendid on Go-s goroutine'ide jaoks? Parandage võistluse näide, kasutades atomic

212

Kui sul oleks valida kahe ettevõtte või kahe meeskonna vahel, millele pööraksid tähelepanu ja kuidas valiksid?

210

Kuidas töötab hash-tabel? Milline on sisestamise ja lugemise keerukus? Go-s rakendamise omadused.

207

Kas sul on arusaam, millises meeskonnas sooviksid töötada? Milline see peaks olema?

206

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?

201

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

198

Kuidas klient teab, milliseid sõnumeid ta sai, olles offline?

197

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") } }

194

Mis on sharding ja milleks seda kasutatakse? Kuidas valida sharding-võti taksoteenuse tabelite jaoks (juhid, kliendid, tellimused)?

193

Mis on HTTPS? Kuidas see erineb HTTP-st? Kuidas see kaitseb 'inimese keskel' rünnakute eest?

192

Mida praegu rohkem soovite: toote arendamist või platvormi arendamist?

192

Mis vahe on protsesside, lõimede ja goroutine'ide vahel Go keeles?

191

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 );

191

SELECT * c.id, -- vali select all chats (c.id, c.name) for all users by name ($1) where text > 'abc'

190

Räägi üldiselt projektist — mis see oli lõppkasutajale?

189

Kirjutage SQL-päring, mis näitab autorid, kellel on rohkem kui 10 raamatut (tabelid: autorid, raamatud, paljus-ühes suhted)

187

Kuidas Linuxis protsessi tappa? Mida teha, kui kill pid ei aita?

185
/4