Java
/* Şirket, diğer işletmelere yönelik toplu bildirim gönderim hizmeti sağlar. Bir ürün sahibi, kullanıcı tercihlerini dikkate alan bir bildirim filtreleme sistemi oluşturma göreviyle size başvurdu. ## Tanımlar Bildirim: - bildirim kimliği - bildirim türü (EMAIL, SMS, PUSH) - alıcı (kullanıcı kimliği) - mesaj metni Alıcı, tercihler ayarlarına sahip olabilir: - izin verilen bildirim kanalları (türler listesi) - engellenen gönderenler (gönderen kimlikleri listesi) Gönderilen bildirimler geçmişi: - kullanıcıya gönderilen bildirimlerin listesi ## Önemli Kullanıcı ayarları ve gönderim geçmişi, sistemin diğer bileşenleri tarafından sağlanır. Bu verileri almak için sözleşmeler tasarlamalısınız. Depolama uygulaması gerekmez. ## Görev Bir bildirim filtreleme sistemi yazın, ki: - filtrelenecek bildirimler listesi ve gönderen kimliği alınır - kullanıcının tercihlerine uymayan bildirimleri hariç tutar - aynı mesaj kimliği ve aynı kullanıcıya gönderilen mesajlar dikkate alınarak, son 24 saat içinde gönderilenler de dahil olmak üzere, tekrar eden mesajlara karşı koruma uygular - gönderilmeye hazır, filtrelenmiş bildirimler listesini döner. Bildirim gönderimi sizin göreviniz değildir; başka bir ekip gönderimi yapacaktır. Sizin göreviniz sadece filtrelemektir. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }
SQL sorgularını optimize etme deneyiminiz var mı? Sorgu planını analiz edebiliyor musunuz?
Yazılım sistemleri geliştirmede nesne yönelimli programlamanın amacı nedir?
Teknoloji yığını değiştirme veya uygulama kararları aldınız mı? Bir örnek veriniz.
API üzerinden kart numarasıyla müşteri verilerini almak için hangi tür HTTP isteği kullanılmalıdır?
Pratik mülakatlara hazır mısın ve gerçek işe alım sisteminde karşılaşılan tipik sorulara cevap verebiliyor musun?
Sistem tasarımında Prototype Scope kullanmanın avantajları ve dezavantajları nelerdir?
Dağıtık bir sistemde mikroservisler kullanarak bir işlem veya işlemin geri alınmasını nasıl organize edebilirsiniz?
Fonksiyonlara kod bölmenin avantajları ve dezavantajları nelerdir?
Juniorlara mentorluk hakkında konuş — nasıl oldu?
Geliştirilen uygulamada @Service anotasyonunun kullanılması gereken durumlar nelerdir?
Neden aynı anda iki mesaj aracısı — Kafka ve RabbitMQ — kullanıldı?
PostgreSQL'de hangi tür indeksleri biliyorsunuz? B-tree indeksinden bahsedin, nasıl yapılandırılmıştır. GIN indeksi nedir?
Integer i = 300, j = 300; System.out.println(i == j);
Üretimde veritabanı değişikliklerini nasıl yaptınız? Liquibase kullandınız mı?
Stream API'de map ile flatMap arasındaki fark nedir?
İsteklerin takibini yapabilmesi için denetleyiciye hangi görünürlük seviyesi belirtilmelidir?
REST nedir ve geleneksel HTTP API'lerinden nasıl ayrılır?
İndeksler oluşturulduktan sonra veritabanına veri ekleme hızını ne kötüleştirebilir?
Sistemle çalışırken install komutunun ne zaman kullanılması önerilir?