Sobes.tech

Golang

Brokerlər kimi Kafka və RabbitMQ-dən necə istifadə etdiniz? Niyə ikisi?

212

İşinizdə rəhbərə niyə ehtiyacınız var? Nəyə görə?

208

Hash cədvəli necə işləyir? Əlavə etmə və oxuma mürəkkəbliyi nədir? Go-da tətbiqin xüsusiyyətləri.

207

İşləmək istədiyin komanda haqqında fikrin var mı? O necə olmalıdır?

206

İki şirkət və ya iki komanda arasında seçim etməli olsan, nəyə diqqət edərsən və necə seçərdin?

206

Uzun müddət etdiyiniz və nəticədə tətbiq olunmayan və ya yığmağa qoyulan bir şey olubmu?

201

Komanda daxilində kod nəzərdən keçirmələri nə qədər tez-tez keçirilirdi?

200

Müştəri offline ikən alınan mesajlar haqqında necə məlumat alır?

197

Bir mesajlaşma tətbiqi üçün backend memarlığını layihələndirmək lazımdır (Slack, Teams, Mattermost). Tələblər və məhdudiyyətlər: yalnız 1x1 söhbətlər, qrup söhbətləri yoxdur yalnız mətn mesajları, əlavələr olmadan xidmət internet vasitəsilə əlçatandır sistemdə 10.000 istifadəçiyə qədər mesajlar sürətlə çatdırılmalıdır, bir neçə saniyə içində mesajların sırası saxlanılmalı, təkrarlanmamalıdır söhbətə keçmişə sürüşdürmək mümkün olmalı, yəni mesajlar saxlanılmalı müştərilər mobil cihazlardır, onların layihələndirilməsi lazım deyil avtorizasiya layihələndirilməsi lazım deyil

196

Kodun düzgün işləməsi üçün: giriş nöqtəsi -- main paketindəki main funksiyası 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("Xəta: gözlənilir %q, alınır %q\n", exp, act) ok = false } } if ok { fmt.Println("Bütün testlər uğurla keçdi") } }

194

İndiki vaxtda daha çox nə istəyirsiniz — məhsul inkişafı yoxsa platforma inkişafı?

191

Go-da proseslər, iş parçaları və goroutinlər arasındakı fərq nədir?

191

SELECT * c.id, -- bütün istifadəçilər üçün ad ($1) ilə bütün söhbətləri seç where text > 'abc'

190

HTTPS nədir? HTTP-dən nə ilə fərqlənir? 'Orta adam' hücumundan necə qoruyur?

190

Şərt 3 varlıq mövcuddur: istifadəçi, söhbət, mesaj • İstifadəçinin adı və qeydiyyat tarixi var • Söhbətin adı və yaradılma tarixi var • Mesajın mətni, müəllifi və yaradılma tarixi var • İstifadəçi eyni zamanda bir neçə söhbətdə ola bilər • Mesaj mütləq söhbətə aid olmalıdır, eyni zamanda bir neçə söhbətə aid ola bilməz • Sahəni cədvəl şəklində təsvir etmək lazımdır -- paylanmış -- message_count söhbətlərdə 100-ə qədər məhdudlaşdırılıb --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 );

189

Layihə haqqında ümumi danış — bu son istifadəçi üçün nə idi?

189

Sharding nədir və nə üçün istifadə olunur? Taksi xidməti cədvəlləri üçün sharding açarını necə seçmək olar (sürücülər, müştərilər, sifarişlər)?

189

10-dan çox kitabı olan müəllifləri göstərmək üçün SQL sorğusu yazın (cədvəllər: müəlliflər, kitablar, çoxdan-çox əlaqə)

187

Linux-da prosesi necə öldürmək olar? Əgər kill pid kömək etmirsə, nə etməli?

185
/4