Java
/* Şirkət digər bizneslər üçün kütləvi bildiriş göndərmə xidməti təqdim edir. Məhsul sahibi istifadəçi üstünlüklərini nəzərə alan bildiriş filtrləmə sisteminin yaradılmasını tapşırdı. ## Təriflər Bildiriş: - bildiriş ID-si - bildiriş növü (EMAIL, SMS, PUSH) - alıcı (istifadəçi ID-si) - mesaj mətni Alıcı istifadəçi üstünlüklərinə sahib ola bilər: - icazə verilən bildiriş kanalları (növlər siyahısı) - bloklanmış göndərənlər (göndərən ID-ləri siyahısı) Göndərilmiş bildirişlərin tarixi: - istifadəçiyə göndərilmiş bildirişlərin siyahısı ## Vacib İstifadəçi parametrləri və göndərilənlər tarixi digər sistem komponentləri tərəfindən təmin edilir. Bu məlumatları almaq üçün müqavilələr dizayn etməlisiniz. Yadda saxlamanın tətbiqi lazım deyil. ## Tapşırıq Bildirişləri filtrləyən sistem yazın ki: - filtr üçün bildirişlər siyahısı və göndərən ID-si alınır - istifadəçinin üstünlüklərinə uyğun olmayan bildirişləri istisna edir - eyni ID-ə malik və eyni istifadəçiyə göndərilən mesajlar daxil olmaqla, son 24 saatda göndərilən mesajlar da daxil olmaqla, təkrarlanan mesajlara qarşı qoruma tətbiq edir - göndərilməyə hazır, filtrlenmiş bildirişlər siyahısını qaytarır. Bildirişlərin göndərilməsi sizin vəzifəniz deyil; başqa bir komanda göndərmə ilə məşğul olacaq. Sizin vəzifəniz yalnız filtrasiya. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }
SQL sorğularının optimallaşdırılması təcrübəniz varmı? Sorğu planını analiz edə bilirsinizmi?
Proqram təminatı sistemlərinin inkişafında obyekt yönümlü proqramlaşdırmanın məqsədi nədir?
Texnologiya yığını ilə əlaqədar dəyişiklik və ya tətbiq qərarları verdinizmi? Nümunə göstərin.
API vasitəsilə kart nömrəsi ilə müştəri məlumatlarını almaq üçün hansı növ HTTP sorğusu istifadə edilməlidir?
Təcrübə müsahibələrinə hazırısınız və real işə qəbul sistemində rast gəlinən tipik suallara cavab verməyi bilirsinizmi?
Sistemlərin dizaynında Prototype Scope istifadə etmənin üstünlükləri və çatışmazlıqları hansılardır?
Mikroxizmatlar ilə paylanmış sistemdə əməliyyatın və ya tranzaksiyanın geri alınmasını necə təşkil etmək olar?
Kodun funksiyalara bölünməsinin üstünlükləri və çatışmazlıqları nələrdir?
Juniorların mentorluğu haqqında danış — necə idi?
İnkişaf edən tətbiqdə @Service qeydinin istifadə olunması lazım olan hallar hansılardır?
Niyə eyni zamanda iki mesaj brokeri — Kafka və RabbitMQ — istifadə olunub?
PostgreSQL-də hansı indeks növlərini bilirsiniz? B-tree indeksindən danışın, necə qurulub. GIN indeksi nədir?
Integer i = 300, j = 300; System.out.println(i == j);
İstehsalda verilənlər bazasında dəyişiklikləri necə etdiniz? Liquibase istifadə etdinizmi?
Stream API-də map və flatMap arasındakı fərq nədir?
İstəklərin icrasını izləyə bilmək üçün nəzarətçi üçün hansı görünürlük səviyyəsi göstərilməlidir?
REST nədir və o, adi HTTP API-dən necə fərqlənir?
İndekslər yaradıldıqdan sonra verilənlərin bazaya daxil edilmə sürətinin pisləşməsinə nə səbəb ola bilər?
Sistemlə işləyərkən install əmrinə nə vaxt müraciət etmək məsləhətdir?