Java
Микросервис архитектурасын қолданудың қажеті жоқ болған жағдайдың мысалын келтіріңіз және бірнеше себептерін атаңыз.
Бұл сіз өткізу қабілетін екі есе арттырған жағдай ма?
Неге ағашты балансировкалау керек? Қайдан тез іздеу жүзеге асырылады?
Басшылық тәжірибеңіз болды ма?
/** * 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-пен қаншалықты тығыз жұмыс істедіңіз? Қызметтер үшін конфигурацияларды қалай орнаттыңыз?
[Аты] сұрады: Kubernetes-те Java процесінен heap dump қалай алуға болады? Bash консолінде қадам-қадаммен сипаттаңыз.
Көп ағынды жұмыс істеуіңіз қалай болды? Race condition немесе deadlock жағдайлары қызықты болды ма?
Қандай нақты маңызды бизнес процестер асинхронды өзара әрекеттесу моделіне көшірілді?
Талаптарды жазбас бұрын аналитиктермен бірге тапсырмаларды тазарту тәжірибеңіз болды ма?
@Transactional аннотациясы бар әдіс неге транзакция құруы мүмкін емес?
Толық жиналу (терең тазалау) Негізгі жиналудан неге нашар? Ол қайда өтеді және ол қандай сипаттамаларға ие?
LEFT JOIN қалай жұмыс істейді?
Деректер қорындағы индекстер туралы айтыңыз: қандай түрлері бар, олар сұрауларды қалай жылдамдатады және қашан қажет емес?
Егер hashCode() әдісін қайта анықтап, ол әрқашан бірдей мәнді (мысалы, 42) қайтарса, HashMap-ке не болады?