Брокерлер туралы — Kafka мен RabbitMQ-ны қалай қолдандыңыз? Неге екеуі?
Golang
Екі компания немесе екі команда арасында таңдау жасағанда, нені ескеру керек және қалай таңдайсыз?
Жұмыста жетекшінің қажеті неден? Қандай мақсатта?
Хэш-таблица қалай ұйымдастырылған? Қою және оқу күрделілігі қандай? Go-да жүзеге асыру ерекшеліктері.
Сіз жұмыс істегіңіз келетін команда туралы түсінігіңіз бар ма? Ол қандай болуы керек?
Kubernetes-те қызмет объектісі дегеніміз не?
Ұзақ уақыт бойы істеген нәрсеңіз соңында жүзеге аспай қалған немесе кейінге қалдырылған жағдай болды ма?
Командада кодты қарау қанша жиі жүргізілді?
Slack, Teams, Mattermost сияқты мессенджер үшін бекенд архитектурасын жобалау қажет. Талаптар мен шектеулер: тек 1x1 чаттар, топтық чаттар жоқ, тек мәтіндік хабарламалар, файлдарсыз, интернет арқылы қол жетімді, жүйеде 10,000 пайдаланушыға дейін, хабарламалар тез жеткізілуі керек, бірнеше секунд ішінде, хабарламалардың тәртібі сақталуы керек, қайталанбайды, чат тарихын қарау мүмкіндігі болуы керек, яғни хабарламалар сақталуы керек, клиенттер – мобильді құрылғылар, олардың жобалануы қажет емес, авторизация қажет емес.
Клиент офлайн болған кезде алынған хабарламалар туралы қалай біледі?
Дұрыс кодты орындау үшін: кіріс нүктесі main пакетіндегі main функциясы пакет main импорт ( "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("Барлық тесттер сәтті өтті") } }
Қазір не көбірек ұнайды — өнімдік немесе платформалық әзірлеу?
Go тілінде процестер, ағындар және горутиндер арасындағы айырмашылық неде?
SELECT * c.id, -- барлық пайдаланушылар үшін барлық чаттарды таңдау (c.id, c.name) аты бойынша ($1) where text > 'abc'
HTTPS деген не? HTTP-дан айырмашылығы неде? Ол 'адам ортасында' шабуылдардан қалай қорғайды?
Шардтау деген не және ол не үшін пайдаланылады? Такси қызметі кестелері үшін шардтау кілтін қалай таңдау керек (жүргізушілер, клиенттер, тапсырыстар)?
Шарт 3 мәні бар - пайдаланушы, чат, хабарлама • Пайдаланушының аты және тіркелу күні бар • Чаттың атауы және құру күні бар • Хабарламада мәтін, автор және құру күні бар • Пайдаланушы бірнеше чатқа бір уақытта қосыла алады • Хабарлама міндетті түрде чатқа тиесілі, бір уақытта бірнеше чатқа тиесілі бола алмайды • Область пәнін кестелер түрінде сипаттау керек -- тарату -- message_count чаттарда шектеулі 100 --getShard(уақыт белдеуі) -> shard_id -> 1 --getShard(уақыт белдеуі) -> 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 );
Жалпы жоба туралы айтып беріңіз — ол соңғы пайдаланушы үшін не болды?
10-нан астам кітаптары бар авторларды тізімдеу үшін SQL сұрауын жазыңыз (кестелер: авторлар, кітаптар, көптен-көп қатынас).
Linux-те процесс қалай өлтіруге болады? 'kill pid' көмектеспесе не істеу керек?