Java
Қандай NoSQL дерекқорларымен жұмыс істедіңіз?
Медиатор паттерні прокси-дан қалай ерекшеленеді?
Processing Service-тің бірнеше мысалында тақырыптар мен бөлімдердің оқылуы қалай бөлінеді (масштабтау)?
Өзіңіз туралы, тәжірибеңіз, соңғы жобаңыз, рөліңіз және жауапкершіліктеріңіз туралы айтыңыз.
Сұрау индекс қолданатынын қалай анықтауға болады? Қолданылмаған индекстерді қалай бақылауға болады?
Алдыңғы жұмыс орныңызда даму процесі қалай ұйымдастырылды — бизнес қажеттілігінен бастап релизге дейін.
Kafka-да тұтынушы тобы дегеніміз не? Тұтынушылар бір топта немесе әртүрлі топтарда болғанда қалай әрекет етеді?
Қай жағдайларда retry-цепочка және DLT (Dead Letter Topic) механизмі қолданылды?
Java-да қандай жиналғыштар (Garbage Collectors) бар? Әр түрлі түрлерін қолдану бойынша ұсыныстар бар ма?
Бір класта екі транзакцияны қалай жасауға болады (self-invocation шектеуін айналып өту)?
Жалақы туралы сұрақтар — сіз жалақы диапазонына кірдіңіз бе?
JDBC арқылы белгілі бір күннен кейін туған барлық адамдарды алу шешімі қалай көрінеді?
Mockito тестінде әдісті ұмытсаңыз және ол тест кезінде шақырылса, не болады?
Басшылық тәжірибеңіз болды ма?
/** * ATM жабдығымен өзара әрекеттесу интерфейсі. */ interface Hardware { /** * 50, 100, 500, 1000, 5000 номиналдарындағы купюра саны бар массивті қайтарады. * Бұл әдіс баяу жұмыс істейді және шу шығарады. * * @return әр элементі белгілі бір номиналдағы купюра санын көрсететін массив. * Мысалы, [10, 20, 30, 40, 50] мынаны білдіреді: * - 50 рубльдік 10 купюра * - 100 рубльдік 20 купюра * - 500 рубльдік 30 купюра * - 1000 рубльдік 40 купюра * - 5000 рубльдік 50 купюра */ int[] getBillsCounts(); /** * Берілген купюраларды шығару қорабына жүктейді. * * @param billsCounts номиналдар бойынша купюра саны бар массив [50, 100, 500, 1000, 5000]. * Мысалы, [0, 1, 0, 2, 0] мынаны білдіреді: * - 50 рубльдік 0 купюра * - 100 рубльдік 1 купюра * - 500 рубльдік 0 купюра * - 1000 рубльдік 2 купюра * - 5000 рубльдік 0 купюра */ void giveBills(int[] billsCounts); } /** * ATM логикасын жүзеге асыратын класс. * Мұнда код жазу керек */ class MyATM { /** * ATM жабдығы. */ Hardware hardware; public boolean withdraw(int amount) { int[] counts = hardware.getBillsCounts(); int[] nom = {50, 100, 500, 1000, 5000}; int[] toGive = new int[5]; for (int i = 4; i >= 0; i--) { int needed = amount / nom[i]; int use = Math.min(needed, counts[i]); toGive[i] = use; amount -= use * nom[i]; } if (amount != 0) { return false; } hardware.giveBills(toGive); return true; } }
Dependency Inversion қағидатын қашан қолдану керек, ал қашан қолданбау керек (YAGNI-мен байланысты)?
Алдыңғы жобаларыңызда дизайнды кім жасады — дизайнерлер ме? Олар қандай құралдармен жұмыс істеді (Figma, Photoshop, Avocode)?
Spring қосымшасында қанша скоуп бар?
Неге екі массив (temp және result) қажет?
Көп ағынды жұмыс істеуіңіз қалай болды? Race condition немесе deadlock жағдайлары қызықты болды ма?