Golang
მოდერაციის/ორკესტრატორის სისტემის პროექტის შესახებ ისაუბრეთ — როგორ იყო პროექტირებული, რა გადაწყვეტილებები მიიღეს?
რომელი კეშ სტრატეგია უნდა ავირჩიოთ — cache-aside თუ write-through — მომხმარებლების ქცევის ნიმუშს განიხილეთ შეკვეთის სტატუსის შემოწმებისას?
პროგრამირების დროს არხებთან მუშაობის წესები უნდა იცოდეთ (დახურული, ღია, როდის რა შეიძლება გაკეთდეს)?
დაწერეთ დავალება Go ენის გამოყენებით — პრაქტიკული ნაწილი (დეველოპერის ცხოვრების პრობლემები, ალგორითმების გარეშე): სერვისის გაუმჯობესება ან გამოსწორება. ხანგრძლივობა — 1,5 საათი.
თუ მომხმარებლები მონეტიზაციის მოდელის ცვლილებაზე უკმაყოფილონი არიან, მაგრამ ბიზნესს აქვს მკაფიო გეგმა, რა უნდა გააკეთოს?
ცოცხალი კოდირება: სემაფორი — როგორ მუშაობს და მისი განხორციელება ბუფერული არხის საფუძველზე.
რომელი მეთოდოლოგია გამოიყენება: Scrum, Kanban ან შერეული?
რა შეზღუდვა აქვს სემაფოროს და ბუფერულ არხს პარალელური მოთხოვნების შეზღუდვის გადაწყვეტილებად?
გაუცნობიათ [კომპანია] ან ჩვენი პროდუქტების შესახებ?
რას ნიშნავს შეფასებები?
რა რამესთან აღარ გსურს სამუშაოში შეხვედრა?
თქვენი დონის რა არის: middle, middle+, senior?
Go-ის კოდის ანალიზი: რა აკეთებს კოდი, რა პრობლემები არსებობს?
Go-ში ინტერფეისი რომელ ჯგუფს (მუტაბელი/IMMUTABLE) ეკუთვნის?
რა არის ავტორიზაციის ტოკენები და რა ტიპები არსებობს?
რა განსხვავებაა რელაციური მონაცემთა ბაზებსა და NoSQL-ს შორის?
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 შეტყობინებების და მიწოდების დადასტურებების სინქრონიზაციისთვის. - არ არის ნათელი, როგორ ხორციელდება დატვირთვის ბალანსი მონაცემთა ბაზებსა და სერვისებს შორის, განსაკუთრებით პიკების დროს. **მნიშვნელოვანი საკითხები, რომლებიც უნდა განიხილოს:**
გთხოვთ, ჩამოთვალოთ ძირითადი სტეკი Go-ში
გახდომია დროის ჩაწერა, დროის მონიტორინგი რომელიმე სისტემაში?
""" සිනමාහලේ ස්ථාන එක පේළියක් ලෙස පිහිටා ඇත. නව පැමිණෙන නරඹන්නෙකු ස්ථානයක් තෝරයි, සියල්ලන්ගෙන් දුරස්ව සිටීමට. එනම්, එම ස්ථානය, ඒකට වාසස්ථානයට ඉතා ආසන්න නරඹන්නෙකුට ඇති දුර අධිකම විය යුතුය. සෑම විටම හිස් ස්ථාන තිබෙන බව සහ අවම වශයෙන් එක නරඹන්නෙක් ඉඳගෙන ඇති බව සහතික වේ. දී ඇති ස්ථාන මාලාව (සෙරෝ සහ වාසියන් අඩංගු අරේ) මත පදනම්ව, තෝරාගත් ස්ථානයෙන් ඒකට වාසස්ථානයට දුර (සෙරෝ සහ වාසියන් අතර ඇති පළවෙනි ගණන) ආපසු ලබා දෙන ක්රියාවලියක් ලියන්න. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 [0, 0, 0, 1] [1, 0, 0, 0] place = ((right - left) / 2) """ func maxPlaces(arr []int) int { }