Java
Әр бағанға фильтрлермен 10 бағаннан тұратын кесте бар. Индекстерді қалай ұйымдастыру керек?
Бір класта екі транзакцияны қалай жасауға болады (self-invocation шектеуін айналып өту)?
Жалақы туралы сұрақтар — сіз жалақы диапазонына кірдіңіз бе?
REST контекстінде stateless деген не білдіреді?
Команданың құрылымы қандай? DevOps-пен жұмыс істеу мүмкіндігі бола ма?
JDBC арқылы белгілі бір күннен кейін туған барлық адамдарды алу шешімі қалай көрінеді?
Kafka-да Consumer Group дегеніміз не? Қашан екі тұтынушыны бір топқа біріктіру қажет емес?
StringBuilder дегеніміз не және ол String және StringBuffer-тан қалай ерекшеленеді?
Неліктен SQL-оптимизациясымен айналысу керек болды және деректер инженері мен әзірлеушілер арасындағы жауапкершілік аймақтары қалай бөлінді?
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)?
Ұзақ уақыт жұмыс істеген және соңында шешкен өте күрделі тапсырма туралы айтыңыз.
Неге екі массив (temp және result) қажет?
SQL-ды қаншалықты жақсы білесіз?
Kubernetes-пен қаншалықты тығыз жұмыс істедіңіз? Қызметтер үшін конфигурацияларды қалай орнаттыңыз?