Loyihangizda DevOps amaliyotlari amalga oshirilganmi yoki rivojlantirish va ekspluatatsiya jarayonlarini avtomatlashtirish va integratsiya qilish bilan shug'ullanuvchi jamoa bormi?
Java
So'nggi bajarilgan loyihada qanday o'zgartirishlar yoki yechimlarni kiritgan bo'lardingiz, hozir bilganingizni hisobga olgan holda?
JUnit 5 va Mockito yordamida bildirishnomalarni filtrlash tizimining asosiy ssenariylarini qamrab oladigan testlarni yozing: null/bosh kirish, valid bildirishnoma, yuboruvchini bloklash, kanal bo'yicha filtrlash, duplikatlarni olib tashlash.
Loyihangizda jamoa qanday tuzilgan va taqsimlangan?
Hozirda qanday loyihalar yoki vazifalarni amalga oshiryapsiz?
Stackga element qo'shish operatsiyasining vaqt murakkabligi qanday?
HashMap ma'lumotlar tuzilmada get metodining vaqt murakkabligi qanday aniqlanadi?
Bir mikroxizmat, To'g'ridan-to'g'ri chaqirish yondashuvida qanday qilib boshqa xizmat bilan bog'lanishni aniqlaydi?
Siz tizimda iplar o'rtasida o'zaro bloklanish holatini tushuntirib bera olasizmi?
Bildirishnomalarni filtrlash tizimini qanday optimallashtirish mumkin?
/* Kompaniya boshqa bizneslarga ommaviy bildirishnomalar yuborish xizmatini taqdim etadi. Mahsulot egasi foydalanuvchilarning afzalliklarini hisobga olgan holda bildirishnomalarni filtrlaydigan tizim yaratish vazifasini berdi. ## Ta'riflar Bildirishnoma: - bildirishnoma ID - bildirishnoma turi (EMAIL, SMS, PUSH) - oluvchi (foydalanuvchi ID) - xabar matni Oluvchi foydalanuvchi sozlamalariga ega bo'lishi mumkin: - ruxsat etilgan bildirishnoma kanallari (turlar ro'yxati) - bloklangan yuboruvchilar (yuboruvchilar IDlari ro'yxati) Yuborilgan bildirishnomalar tarixi: - foydalanuvchiga yuborilgan bildirishnomalar ro'yxati ## Muhim Foydalanuvchi sozlamalari va yuborilganlar tarixi boshqa tizim komponentlari tomonidan taqdim etiladi. Ushbu ma'lumotlarni olish uchun shartnomalarni loyihalashingiz kerak. Saqlashni amalga oshirish shart emas. ## Vazifa Bildirishnomalarni filtrlaydigan tizim yozing, u: - filtrlanadigan bildirishnomalar ro'yxati va yuboruvchi IDni qabul qiladi - foydalanuvchi afzalliklariga mos kelmaydigan bildirishnomalarni chiqarib tashlaydi - takroriy xabarlarni himoya qilishni amalga oshiradi, jumladan, so'nggi 24 soat ichida yuborilganlar. Takrorlar bir xil IDga ega va bir foydalanuvchiga yuborilgan xabarlar hisoblanadi - yuborishga tayyor, filtrlangan bildirishnomalar ro'yxatini qaytaradi. Bildirishnomalarni yuborish sizning vazifangiz emas; boshqa jamoa yuborishni amalga oshiradi. Sizning vazifangiz faqat filtrlamoq. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }