Sobes.tech

Golang

За исправно извршавање кода: улазна тачка -- функција main у пакету 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("Грешка: очаквано %q, получено %q\n", exp, act) ok = false } } if ok { fmt.Println("Всички тестове преминаха успешно") } }

196

Условие Има 3 същности: потребител, чат, съобщение • Потребителят има име и дата на регистрация • Чатът има име и дата на създаване • Съобщението има текст, автор и дата на създаване • Потребителят може да участва в няколко чата едновременно • Съобщението задължително принадлежи към чат, не може да принадлежи към повече от един чат едновременно • Трябва да се опише предметната област под формата на таблици -- разпределен -- message_count в чатов лимит 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 );

195

Šta je HTTPS? Čime se razlikuje od HTTP? Kako štiti od napada 'čovek u sredini'?

194

Koja je razlika između procesa, niti i goroutines u Go?

191

Објасни уопштено о пројекту — шта је то било за крајњег корисника?

191

Šta je uslov za trku (race condition) u Go? Dajte primer.

190

Kako ubiti proces u Linuxu? Šta uraditi ako kill pid ne pomaže?

187

Napišite SQL upit za prikaz autora koji ima više od 10 knjiga (tabele: autori, knjige, veza mnogo-na-mnogo)

187

Šta su EXPLAIN i EXPLAIN ANALYZE u PostgreSQL, u čemu je razlika?

186

Postoje 3 entiteta: korisnik, chat, poruka • Korisnik ima ime i datum registracije • Chat ima naziv i datum kreiranja • Poruka ima tekst, autora i datum kreiranja • Korisnik može biti u više chatova istovremeno • Poruka je obavezno povezana sa chatom i ne može biti povezana sa više od jednog chat-a istovremeno • Potrebno je opisati predmetnu oblast u obliku tabela

185

Преглед кода: кеш у Go-у са мьютексом. Пронађите проблеме и предложите унапређења. Услов: оптерећење читања/писања 80/20.

184

Ispričaj o interesantnom ili složenom tehničkom zadatku koji si rešavao

183

Са којим базама података сте радили најближе?

181

Са којим стеком сте најчешће радили?

178

главни пакет увоз ( "crypto/md5" "fmt" ) var алфабет = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func ВраќањеНаЛозинка(h []byte) string { return "" } func хешЛозинка(влез string) []byte { h := md5.Sum([]byte(влез)) return h[:] } func main() { тестови := []string{"a", "12", "abc333d"} ok := true for _, очекувано := range тестови { h := хешЛозинка(очакувано) активно := ВраќањеНаЛозинка(h) if активно != очекувано { fmt.Printf("Грешка: се очекува %q, се добива %q\n", очекувано, активно) ok = false } } if ok { fmt.Println("Сите тестови успешно поминаа") } }

174

Опишите структуру HTTP-захтева и одговора. Како се класификују кодови одговора?

170

Kako klijent zna svoj user_id i user_id sagovornika? Kako se vrši početna inicijalizacija?

168

package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func VratiLozinku(h []byte) string { return "" } func hashLozinka(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashLozinka(exp) act := VratiLozinku(h) if act != exp { fmt.Printf("Greška: očekivano %q, dobijeno %q\n", exp, act) ok = false } } if ok { fmt.Println("Sve testove je prošlo uspešno") } } Za ispravno izvršavanje koda: ulazna tačka -- funkcija main u paketu main Zadatak: Implementirati funkciju VratiLozinku, koja na osnovu MD5 hasha rekonstruira originalnu lozinku sastavljenu od znakova datog alfabeta.

165

Чиме сте се најчешће бавили у свакодневним задацима?

165
/4