Brokerlər kimi Kafka və RabbitMQ-dən necə istifadə etdiniz? Niyə ikisi?
Golang
İşinizdə rəhbərə niyə ehtiyacınız var? Nəyə görə?
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.
İşləmək istədiyin komanda haqqında fikrin var mı? O necə olmalıdır?
İ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?
Kubernetes-də Service varlığı nədir?
Uzun müddət etdiyiniz və nəticədə tətbiq olunmayan və ya yığmağa qoyulan bir şey olubmu?
Komanda daxilində kod nəzərdən keçirmələri nə qədər tez-tez keçirilirdi?
Müştəri offline ikən alınan mesajlar haqqında necə məlumat alır?
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
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") } }
İndiki vaxtda daha çox nə istəyirsiniz — məhsul inkişafı yoxsa platforma inkişafı?
Go-da proseslər, iş parçaları və goroutinlər arasındakı fərq nədir?
SELECT * c.id, -- bütün istifadəçilər üçün ad ($1) ilə bütün söhbətləri seç where text > 'abc'
HTTPS nədir? HTTP-dən nə ilə fərqlənir? 'Orta adam' hücumundan necə qoruyur?
Şə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 );
Layihə haqqında ümumi danış — bu son istifadəçi üçün nə idi?
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)?
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ə)
Linux-da prosesi necə öldürmək olar? Əgər kill pid kömək etmirsə, nə etməli?