За исправно извршавање кода: улазна тачка -- функција 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("Всички тестове преминаха успешно") } }
Golang
Условие Има 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 );
Šta je HTTPS? Čime se razlikuje od HTTP? Kako štiti od napada 'čovek u sredini'?
Koja je razlika između procesa, niti i goroutines u Go?
Објасни уопштено о пројекту — шта је то било за крајњег корисника?
Šta je uslov za trku (race condition) u Go? Dajte primer.
Kako ubiti proces u Linuxu? Šta uraditi ako kill pid ne pomaže?
Napišite SQL upit za prikaz autora koji ima više od 10 knjiga (tabele: autori, knjige, veza mnogo-na-mnogo)
Šta su EXPLAIN i EXPLAIN ANALYZE u PostgreSQL, u čemu je razlika?
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
Преглед кода: кеш у Go-у са мьютексом. Пронађите проблеме и предложите унапређења. Услов: оптерећење читања/писања 80/20.
Ispričaj o interesantnom ili složenom tehničkom zadatku koji si rešavao
Са којим базама података сте радили најближе?
Са којим стеком сте најчешће радили?
Koje HTTP metode postoje? Koje od njih su idempotentne?
главни пакет увоз ( "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("Сите тестови успешно поминаа") } }
Опишите структуру HTTP-захтева и одговора. Како се класификују кодови одговора?
Kako klijent zna svoj user_id i user_id sagovornika? Kako se vrši početna inicijalizacija?
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.
Чиме сте се најчешће бавили у свакодневним задацима?