Java
მრავალმხრივი პროგრამირების კონტექსტში ორჯერადი შემოწმების მეთოდის მუშაობის პრინციპი ახსენით.
/* კომპანია სხვა ბიზნესებისთვის მასობრივი შეტყობინებების სერვისს უზრუნველყოფს. პროდუქტის მფლობელმა დაგეგმა შეტყობინებების სორტირების სისტემა, რომელიც მომხმარებლის პრეფერენციებს ითვალისწინებს. ## განმარტებები შეტყობინება: - შეტყობინების ID - შეტყობინების ტიპი (EMAIL, SMS, PUSH) - მიმღები (მომხმარებლის ID) - შეტყობინების ტექსტი მიღებელი შეიძლება ჰქონდეს პრეფერენციების პარამეტრები: - დაშვებული შეტყობინების არხები (ტიპების სია) - დაბლოკილი გამგზავნები (გამგზავნის ID-ების სია) გაგზავნილი შეტყობინებების ისტორია: - მომხმარებელზე გაგზავნილი შეტყობინებების სია ## მნიშვნელოვანი მომხმარებლის პარამეტრები და გაგზავნილი შეტყობინებების ისტორია სხვა სისტემის კომპონენტების მიერ არის მიწოდებული. ამ მონაცემების მისაღებად უნდა შეიმუშაოთ კონტრაქტები. საწყობი განხორციელება არ არის საჭირო. ## დავალება წერეთ შეტყობინებების სორტირების სისტემა, რომელიც: - იღებს სიის შეტყობინებებს და გამგზავნის ID-ს - გამორიცხავს მომხმარებლის პრეფერენციებს არ შესაბამის შეტყობინებებს - ახორციელებს დუბლიკატების დაცვას, მათ შორის, ბოლო 24 საათში გაგზავნილებს: დუბლიკატები ითვლება ერთიდაიგივე ID-ით და ერთსა და იმავე მომხმარებელზე მიმართული შეტყობინებები - აბრუნებს სორტირებულ სიის შეტყობინებებს, მზად არის გაგზავნისთვის. გაგზავნა თქვენი დავალება არ არის; სხვა გუნდი უზრუნველყოფს გაგზავნას. თქვენი დავალებაა მხოლოდ სორტირება. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }
გაქვს SQL შეკითხვების ოპტიმიზაციის გამოცდილება? შეგიძლია გააანალიზო შეკითხვის გეგმა?
რა არის ობიექტზე ორიენტირებული პროგრამირების დანიშნულება პროგრამული სისტემების განვითარებაში?
რა გადაწყვეტილებები გქონდათ უნდა მიიღოთ ტექნოლოგიური სტეკის შეცვლის ან დანერგვის საკითხში? მიეცით მაგალითი.
რომელი ტიპის HTTP მოთხოვნა უნდა გამოიყენოს API-ის საშუალებით კარტის ნომრით მომხმარებლის მონაცემების მისაღებად?
თქვენ მზად ხართ პრაქტიკული ინტერვიუებისთვის და იცით როგორ უპასუხოთ რეალურ სისტემაში შეხვედრილ ტიპიურ კითხვებს?
სისტემების პროექტირებაში Prototype Scope-ის გამოყენების უპირატესობები და ნაკლოვანებები რა არის?
როგორ ორგანიზება გაუკეთოს ტრანზაქციის ან ოპერაციის გადატანას განაწილებულ სისტემაში მიკროწესვებით?
კოდის გაყოფის ფუნქციებად გამოყენების უპირატესობები და ნაკლოვანებები რა არის?
მენტორობის შესახებ ისაუბრეთ — როგორ იყო ეს?
რის შემთხვევაში უნდა გამოიყენოს @Service შენიშვნა განვითარებად აპლიკაციაში?
რატომ გამოიყენეს ერთდროულად ორი შეტყობინების ბროკერი — Kafka და RabbitMQ?
რომელი ტიპის ინდექსებს იცნობ PostgreSQL-ში? ახარე B-tree ინდექსი, როგორ არის მოწყობილი. რა არის GIN ინდექსი?
Integer i = 300, j = 300; System.out.println(i == j);
როგორ განახორციელეთ მონაცემთა ბაზის ცვლილებები წარმოებაში? გამოიყენეთ Liquibase?
რა განსხვავებაა map და flatMap-ს შორის Stream API-ში?
რომელ დონეზე უნდა იყოს მითითებული კონტროლერის ხილვადობის დონე, რათა ის შეძლოს მოთხოვნების შესრულების მონიტორინგი?
რა არის REST და როგორ განსხვავდება ჩვეულებრივი HTTP API-დან?
რა შეიძლება გამოიწვიოს მონაცემთა ბაზაში მონაცემების ჩაწერის სიჩქარის გაუარესება ინდექსების შექმნის შემდეგ?