Java
Ko'p ipli dasturlash kontekstida ikki tekshirish usulining ishlash prinsipi haqida tushuntiring.
/* 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 }
SQL so'rovlarini optimallashtirish bo'yicha tajribangiz bormi? So'rov rejasini tahlil qila olasizmi?
Dasturiy ta'minot tizimlarini ishlab chiqishda ob'ektga yo'naltirilgan dasturlashning maqsadi nima?
Texnologik stekni almashtirish yoki joriy etish bo'yicha qanday qarorlar qabul qilishingiz kerak bo'ldi? Misol keltiring.
API orqali karta raqami bo'yicha mijoz ma'lumotlarini olish uchun qaysi turdagi HTTP so'rovi ishlatilishi kerak?
Amaliy suhbatlarga tayyormisiz va haqiqiy ishga qabul qilish tizimida uchraydigan odatiy savollarga javob berishni bilasizmi?
Tizim loyihalashtirishda Prototype Scope foydalanishning afzalliklari va kamchiliklari qanday?
Mikroxizmatlar bilan taqsimlangan tizimda tranzaksiya yoki operatsiyani bekor qilishni qanday tashkil qilish mumkin?
Kodni funksiyalarga bo'lishning afzalliklari va kamchiliklari qanday?
Yosh dasturlashchilarga mentorlik qilish haqida gapirib bering — bu qanday edi?
Qaysi hollarda rivojlanayotgan ilovada @Service annotatsiyasidan foydalanish kerak?
Nima uchun bir vaqtning o'zida ikkita xabar brokeri — Kafka va RabbitMQ — ishlatilgan?
PostgreSQL'da qanday indeks turlarini bilasiz? B-tree indeksini tushuntiring, u qanday ishlaydi. GIN indeks nima?
Integer i = 300, j = 300; System.out.println(i == j);
Ishlab chiqarishda ma'lumotlar bazasiga o'zgartirishlarni qanday amalga oshirdingiz? Liquibase'dan foydalandingizmi?
Stream API'da map va flatMap o'rtasidagi farq nima?
So'rovlarni bajarilishini kuzatishi uchun nazoratchi uchun qaysi ko'rinish darajasi ko'rsatilishi kerak?
REST nima va u oddiy HTTP API dan qanday farq qiladi?
Indekslar yaratilgandan so'ng ma'lumotlarni bazaga joylashish tezligini qanday yomonlashtirishi mumkin?