კოდს სწორი შესრულებისთვის: შესვლის წერტილი -- 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
რა განსხვავებაა პროცესებს, ნაკადებს და goroutines-ებს შორის Go-ში?
Шарт 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 );
საერთო ჯამში ისაუბრე პროექტზე — რა იყო ეს საბოლოო მომხმარებლისთვის?
როგორ მოკვდინოთ პროცესი Linux-ში? რა უნდა გააკეთოთ, თუ kill pid არ ეხმარება?
SQL სვეტების დაწერა, რათა გამოიტანოთ ავტორები, რომლებსაც მეტი 10 წიგნი აქვთ (ცხრილები: ავტორები, წიგნები, ბევრი-კი-მრავალი ურთიერთობა)
რა არის რბოლის მდგომარეობა (race condition) Go-ში? მიეცით მაგალითი.
რა არის EXPLAIN და EXPLAIN ANALYZE PostgreSQL-ში, რა განსხვავებაა მათ შორის?
3 ერთეული არსებობს: მომხმარებელი, ჩატი, შეტყობინება • მომხმარებელს აქვს სახელი და რეგისტრაციის თარიღი • ჩატს აქვს სახელი და შექმნის თარიღი • შეტყობინებას აქვს ტექსტი, ავტორი და შექმნის თარიღი • მომხმარებელი ერთდროულად შეიძლება იყოს რამდენიმე ჩატში • შეტყობინება აუცილებელია ჩატთან დაკავშირებული იყოს და ერთდროულად არ შეიძლება იყოს რამდენიმე ჩატთან დაკავშირებული • სფეროს აღწერა უნდა მოხდეს სვეტების სახით
გააზიარეთ საინტერესო ან რთული ტექნიკური ამოცანა, რომელსაც თქვენ გადაჭრიდით
კოდის მიმოხილვა: Go-ში mutex-თან კეში. იპოვეთ პრობლემები და შემოგთავაზეთ გაუმჯობესებები. პირობა: კითხვა/დაწერა დატვირთვა 80/20.
რომელ მონაცემთა ბაზებთან მუშაობდით ყველაზე მჭიდროდ?
რისი სტეკით მუშაობდით ყველაზე ხშირად?
რა HTTP მეთოდები არსებობს? რომელია მათ შორის იდემპოტენტული?
ძირითადი პაკეტი იმპორტი ( "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 მოთხოვნისა და პასუხის სტრუქტურის აღწერა. როგორ კლასიფიცირებულია პასუხის კოდები?
package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func ParolGeriAl(h []byte) string { return "" } func hashParol(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashParol(exp) act := ParolGeriAl(h) if act != exp { fmt.Printf("Xato: kutilyapti %q, olinyapti %q\n", exp, act) ok = false } } if ok { fmt.Println("Barcha testlar muvaffaqiyatli o'tdi") } } Kodning to'g'ri ishlashi uchun kirish nuqtasi -- main funktsiyasi main paketida Vazifa: MD5 hash-dan orijinal shifri, berilgan alfavitdan belgilardan iborat, tiklash uchun funksiyani amalga oshiring.
რატომ განიხილავთ ახალ შეთავაზებებს? აქტიური თუ პასიური ძიება?
როგორ განვახორციელოთ გრეისფულ შატდაუნი Go-სერვისში Kubernetes-ში ახალი ვერსიის განახლებისას?
ახლა რა გსურს — რა გელოდება ახალი სამუშაოდან?