Сіздің жобада DevOps тәжірибелері жүзеге асырылған ба немесе әзірлеу мен пайдалану процестерін автоматтандыру және біріктірумен айналысатын команда бар ма?
Java
Қазір білетін нәрселеріңізді ескере отырып, соңғы аяқталған жобаға қандай тәсілдер немесе шешімдер енгізер едіңіз?
JUnit 5 және Mockito пайдаланып, хабарландыруларды сүзу жүйесіне негізгі сценарийлерді қамтитын тесттер жазыңыз: null/бос енгізу, жарамды хабарландыру, жіберушіні блоктау, арна бойынша сүзу, қайталауды жою.
Сіздің жобада команда қалай құрылымдалып, бөлінген?
Стекке элемент қосу операциясының уақыттық күрделілігі қандай?
Соңғы уақытта қандай жобалар немесе тапсырмалармен айналысудасыз?
Direct Call тәсілінде бір микросервис басқа микросервиспен қалай байланысу керектігін қалай анықтайды?
HashMap деректер құрылымындағы get әдісінің уақыттық күрделілігі қалай анықталады?
Жүйеде өзара блоктау жағдайы деген не екенін түсіндіріп бере аласыз ба?
Хабарламаларды сүзгілеу жүйесінің жүзеге асырылуын қалай оңтайландыруға болады?
/* Компания басқа бизнеске арналған хабарландыруларды жаппай тарату қызметін ұсынады. Сізге өнім иесі хабарласып, пайдаланушылардың қалауы бойынша хабарландыруларды сүзгілеу жүйесін құру тапсырмасын берді. ## Анықтамалар Хабарландыру: - хабарландырудың идентификаторы - хабарландыру түрі (EMAIL, SMS, PUSH) - алушы (пайдаланушының идентификаторы) - хабарламаның мәтіні Алушының қалаулары болуы мүмкін: - рұқсат етілген хабарландыру арналары (түрлерінің тізімі) - блокталған жіберушілер (жіберушілердің идентификаторларының тізімі) Жіберілген хабарландырулар тарихы: - пайдаланушыға жіберілген хабарландырулар тізімі ## Маңызды Пайдаланушылардың параметрлері мен хабарландырулар тарихы жүйенің басқа компоненттерімен беріледі. Осы деректерді алу үшін келісімшарттарды жобалау керек. Сақтау жүзеге асырылмайды. ## Міндет Хабарландыруларды сүзгілеу жүйесін жазу, ол: - сүзгілеу үшін хабарландырулар тізімін және жіберушінің идентификаторын қабылдайды - пайдаланушының қалауларына сәйкес келмейтін хабарландыруларды шығарып тастайды - хабарламалардың қайталануынан қорғайды, соның ішінде соңғы 24 сағат ішінде жіберілген хабарламаларды ескереді. Қайталанатындар — бірдей идентификаторы бар және бір пайдаланушыға арналған хабарламалар - жіберуге дайын сүзілген хабарландырулар тізімін қайтарады. Хабарландыруларды жіберу сіздің міндетіңіз емес - басқа команда сүзілген тізімді жібереді. Сіздің міндетіңіз — тек сүзгілеу. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }