Golang
შეიტყვი რაიმე Transactional Outbox Pattern-ის შესახებ?
რა იყო ყველაზე დიდი შეცდომა?
რა არის არხები Go-ში, რა ტიპები არსებობს და რა თვისებები აქვთ?
რამდენად საინტერესოა ის, რაც მე კომპანიას შესახებ აღწერე? რამდენად ემთხვევა ის შენს ძიებას?
რა არის SOLID? ახსენით პრინციპები.
როგორ არის ორგანიზებული მონაცემთა გადაცემა სხვადასხვა სერვისებს შორის ინფრასტრუქტურაში? ბროკერის საშუალებით, პირდაპირ, gRPC-ით?
დაწერეთ დავალება Go ენის გამოყენებით — პრაქტიკული ნაწილი (დეველოპერის ცხოვრების პრობლემები, ალგორითმების გარეშე): სერვისის გაუმჯობესება ან გამოსწორება. ხანგრძლივობა — 1,5 საათი.
ჰეშ მაგიდიდან წაკითხვის საშუალო ალგორითმული სირთულე რა არის?
გვითხარით გუნდში შემადგენლობაზე, სერვისების პასუხისმგებლობის ზონებზე და გამოშვების ციკლზე.
კოდი დაწერეთ worker pool-ით URL-ების სლაისის დამუშავებისთვის პარალელური HTTP მოთხოვნებით.
როგორ შეიძლება ოპტიმიზაცია ჩატარდეს მონაცემთა ბაზაში ძიებაში? რა არის ინდექსები და რა არის მათი სირთულე?
როგორ მუშაობს ატომური ოპერაციები?
რისი კრიტერიუმებით იყო გამყოფი მომხმარებელთა ჯგუფები?
როგორ დავრწმუნდეთ მოვლენების მიწოდებაში არასაიმედო ქსელში (ქსელი შეიძლება გაწყდეს, მოვლენები არ უნდა დაკარგოს)?
Go-ში ნაგვის შეგროვებელი ბლოკავს თუ არა? მისი ეფექტი წარმოებაში ჩანს?
და თუ ყველა ველი გამოიყენება კითვის დროს?
რა განსხვავებაა Kafka-სა და RabbitMQ-ს შორის?
როგორ შეაფასებდით საკუთარ თავს როგორც Golang დეველოპერს? ახლა თქვენ middle, middle+, senior ხართ?
რომელ ინსტრუმენტებს იყენებდი არქიტექტურული სქემების ვიზუალიზაციისთვის და რა შემთხვევებისთვის?
150 მილიონი მომხმარებლის მხარდაჭერით მასშტაბირებადი შეტყობინებების სისტემის პროექტირება, რომელიც მხარს უჭერს 75 მილიონ DAU-ს, 225 მილიონ MAU-ს, 1.2M წაკითხვას / 300k დაწერას პიკ QPS-ზე, 5 მილიონ ერთდროულ მომხმარებელს, 60 PB ახალი მონაცემებით წელიწადში, 30%-იანი წლიური ზრდით, SLA 99.95%, p99 <200 ms წაკითხვისთვის, <300 ms დაწერისთვის. საკვანძო კონტექსტი აუცილებელია პროექტირება განაწილებული შეტყობინებების სისტემის, რომელიც მსგავსია WhatsApp-ის, რომელიც მხარს უჭერს 1:1 და ჯგუფურ ჩატებს, უზრუნველყოფს შეტყობინებების მიწოდებას, მომხმარებლების ონლაინ სტატუსებს და მულტიმედია ფაილების (ფოტოები, ვიდეოები, აუდიო) გადაცემას. სისტემა უნდა უზრუნველყოს მაღალი ხელმისაწვდომობა და დაბალი ლაგი, მხარი დაუჭიროს მაღალი პარალელიზმს და გლობალურად მასშტაბირდეს. ფუნქციური მოთხოვნები - მხარდაჭერა პირადი (1:1) და ჯგუფური ჩატებისთვის, მონაწილეების დამატებისა/ამოღების შესაძლებლობით - ტექსტური შეტყობინებების და მულტიმედია ფაილების გაგზავნა და მიღება არ ჩანს end-to-end დაშიფვრის მექანიზმის მკაფიო განხორციელება სერვისების ან მომხმარებლების დონეზე, გარდა ზოგადი შენიშვნის. - არ არის მკაფიო აღწერა sharding-ის და რეპლიკაციის შესახებ chat_id ან user_id-ის მიხედვით, მასშტაბურობის და შეცდომების წინააღმდეგობისთვის. - არ არსებობს მკაფიო კომპონენტი ან მექანიზმი offline შეტყობინებების და მიწოდების დადასტურებების სინქრონიზაციისთვის. - არ არის ნათელი, როგორ ხორციელდება დატვირთვის ბალანსი მონაცემთა ბაზებსა და სერვისებს შორის, განსაკუთრებით პიკების დროს. **მნიშვნელოვანი საკითხები, რომლებიც უნდა განიხილოს:**