Sobes.tech

Golang

Go'da jarayonlar, iplar va goroutinlar o'rtasidagi farq nima?

191

Shart 3 ta mavjudlik mavjud: foydalanuvchi, chat, xabar • Foydalanuvchining ismi va ro'yxatdan o'tish sanasi bor • Chatning nomi va yaratilgan sanasi bor • Xabar matn, muallif va yaratilgan sana bilan • Foydalanuvchi bir vaqtning o'zida bir nechta chatlarda bo'lishi mumkin • Xabar majburiy ravishda chatga tegishli bo'lishi kerak, u bir vaqtning o'zida bir nechta chatga tegishli bo'lishi mumkin emas • Domenni jadval shaklida tasvirlash kerak -- taqsimlangan -- message_count chatlarda 100 bilan cheklangan --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

Loyihaga umumiy tarzda gapiring — bu oxirgi foydalanuvchi uchun nima edi?

191

Bizda foydalanuvchilar parollari bilan ma'lumotlar bazasi bor, parollar hashlangan (hashPassword funksiyasi bilan), va shuningdek, parollarda ishlatilishi mumkin bo'lgan belgilarning to'plami (alphabet o'zgaruvchisi) ma'lum. Bizning vazifamiz, bilinen hash asosida parolni tiklash uchun RecoverPassword funksiyasini amalga oshirish va TestRecoverPassword muvaffaqiyatli bo'lishini ta'minlash. Asosiy talablar: Har qanday usul bilan yechim topish mumkin 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() {

189

Linuxda jarayonni qanday o'ldirish mumkin? kill pid yordam bermasa nima qilish kerak?

187

10 dan ortiq kitobga ega mualliflarni chiqarish uchun SQL so'rovi yozing (jadval: mualliflar, kitoblar, ko'pdan-ko'pga bog'lanish)

187

Go tilida raqobat holati (race condition) nima? Misol keltiring.

186

3 ta entity mavjud: foydalanuvchi, chat, xabar • Foydalanuvchining ismi va ro'yxatdan o'tish sanasi bor • Chatning nomi va yaratilgan sanasi bor • Xabar matn, muallif va yaratilgan sanaga ega • Foydalanuvchi bir vaqtning o'zida bir nechta chatlarda bo'lishi mumkin • Xabar majburiy ravishda chatga tegishli bo'lishi kerak va bir vaqtning o'zida bir nechta chatga tegishli bo'lishi mumkin emas • Domenani jadval shaklida tasvirlash kerak

185

PostgreSQL'da EXPLAIN va EXPLAIN ANALYZE nima, ularning farqi nima?

184

Qiziqarli yoki murakkab texnik vazifa haqida gapirib bering, uni siz hal qilgansiz

183

Kodni ko'rib chiqish: Go tilida mutex bilan kesh. Muammolarni toping va takomillashtirishlarni taklif qiling. Shart: o'qish/yazish yuklamasi 80/20.

174

Qaysi HTTP usullari mavjud? Ularning qaysilari idempotent?

173

paket asosiy import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func PasswordiQaytaTiklash(h []byte) string { return "" } func hashPassword(kiritish string) []byte { h := md5.Sum([]byte(kiritish)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPassword(exp) act := PasswordiQaytaTiklash(h) if act != exp { fmt.Printf("Xato: kutilyapti %q, olinmoqda %q\n", exp, act) ok = false } } if ok { fmt.Println("Barcha testlar muvaffaqiyatli o'tdi") } }

172

HTTP so'rov va javob tuzilmasini tavsiflang. Javob kodlari qanday tasniflanadi?

170

package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func QaytaTiklashParol(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 := QaytaTiklashParol(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 hashidan asl parolni, berilgan alfavitdan belgilardan iborat, tiklash uchun funksiyani amalga oshiring.

165

Kubernetesda yangi versiya joylashtirilganda Go-xizmatining ehtiyotkorlik bilan yopilishini qanday amalga oshirish mumkin?

163

Nima uchun yangi takliflarni ko'rib chiqyapsiz? Faol yoki passiv qidiruv?

163

Hozir nima istaysiz — yangi ishdan qanday kutishlaringiz bor?

159
/4