Υπάρχουν πρακτικές DevOps στο έργο σας ή υπάρχει μια ομάδα που ασχολείται με την αυτοματοποίηση και την ολοκλήρωση των διαδικασιών ανάπτυξης και λειτουργίας;
Java
Ποιες αλλαγές στην προσέγγιση ή στις λύσεις θα κάνατε στο τελευταίο ολοκληρωμένο έργο, γνωρίζοντας όσα γνωρίζετε τώρα;
Γράψτε δοκιμές για το σύστημα φιλτραρίσματος ειδοποιήσεων χρησιμοποιώντας JUnit 5 και Mockito, καλύπτοντας τα βασικά σενάρια: μηδενική/κενή εισαγωγή, έγκυρη ειδοποίηση, αποκλεισμό αποστολέα, φιλτράρισμα ανά κανάλι, απομάκρυνση διπλότυπων.
Πώς είναι δομημένη και κατανεμημένη η ομάδα στο έργο σας;
Ποια τρέχοντα έργα ή εργασίες υλοποιείτε αυτήν την περίοδο;
Ποια είναι η χρονική πολυπλοκότητα της λειτουργίας προσθήκης ενός στοιχείου στη στοίβα;
Πώς καθορίζει ένα μικροϋπηρεσία πώς να επικοινωνήσει με μια άλλη υπηρεσία στην προσέγγιση Άμεσης Κλήσης;
Πώς καθορίζεται η χρονική πολυπλοκότητα της μεθόδου get στη δομή δεδομένων HashMap;
Μπορείτε να εξηγήσετε τι είναι μια κατάσταση αδιεξόδου μεταξύ νημάτων στο σύστημα;
Πώς μπορεί να βελτιστοποιηθεί η υλοποίηση του συστήματος φιλτραρίσματος ειδοποιήσεων;
/* Η εταιρεία παρέχει υπηρεσία μαζικής αποστολής ειδοποιήσεων σε άλλες επιχειρήσεις. Ένας ιδιοκτήτης προϊόντος ανέθεσε τη δημιουργία ενός συστήματος φιλτραρίσματος ειδοποιήσεων λαμβάνοντας υπόψη τις προτιμήσεις των χρηστών. ## Ορισμοί Ειδοποίηση: - 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 }