Подготовка к собеседованию на QA Engineer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
ты сказал про сайт то что там не повторяющиеся множество но я в своей жизни один раз сломался скажу Да давай ну самое главное между ними различия в том что [музыка] это это у нас Вот либо структура либо вот эти деревья Ну там есть сорт например Хорошо такой вопрос я один раз смог сломать и добавить туда одинаковые значения Как ты думаешь как я смог это сделать но они перезатираются Как ты мог сломать если то значение есть она удаляет Ну а чтобы ответить на этот вопрос Нужно задуматься над механизмом как сет
00:00:02 - 00:01:54
проверяет что значение не уникально или уникально но под Это самый говорю там идет под капотом либо хорошо и в нужные баки там уже есть что-то он тогда смотри у нас в наследовании есть такое правило ты можешь наследоваться от одного класса Ну и реализовывать ограниченное количество интерфейсов на самом деле это немножечко неправда ты можешь наследоваться от двух классов Джаве от любого который ты сам выбираешь и от класса object от класса object так вот можешь мне сказать что собственно от класса optics всегда берем какие методы
00:01:16 - 00:02:44
есть несколько методов ну и соответственно вместе с ним Обычно переопределяет еще Ну вот так вот если вот изменить это изменить можете положить Я просто хотел тебя услышать чтобы ты сказал проникнулся хорошо положить можно но просто так такую задачу логические эксперименты чтобы ты не рассказал про iqos и хэш-код хорошо в принципе наверное этого достаточно Я предлагаю тогда в теории пока больших Вопросов нет Мне нравится как-то отвечаешь Я предлагаю тогда испытать на практике Я сейчас тебе скину ссылку в
00:02:13 - 00:03:43
чат и секундочку все скинул Это ссылка на код интервью тебе нужно будет там зайти скорее всего тебе нужно будет свое имя написать и у тебя будет возможность в онлайн ходинг editory писать код запускать его и все такое когда ты туда зайдешь авторизуешься я тебе расскажу собственно Что за задачку там будем решать вот все вижу Так ты зашел так вот там у нас уже есть выбранный Java есть небольшой кода там есть строка Давай наверное тогда по шарика чтобы не только тебе было видно так вроде бы пошарил вот чтобы нашим
00:03:20 - 00:04:47
зрителям тоже было видно что мы решаем так вот здесь в методе Main класса Мой код есть уже базовая конструкция У тебя есть строка S который Ну давай подставим какой-нибудь значение Какая твоя любимая it-компания [музыка] только маленькое слово проверили как ты на английском разговариваешь да соответственно вот эту строку нам нужно инвертировать реверс Ford carectors нужно реализовать метод который есть в этом же классе так вот что нужно сделать нужно каждое слово инвертировать при этом порядок слов
00:04:09 - 00:05:28
сохранить таким же как он был мы должны получить [музыка] можешь сделать все буквы вообще все буквы в каждом слове инвертируем И последнее слово будет первым словом тебе нужно реализовать метод подсказывает интересно или может даже тебе лучше расшарить экран Давай тогда тебе сейчас дам право на экран чтобы я если что видел что не подглядываешь все я дал тебе можешь пожалуйста расширить свой экран [музыка] там зеленая кнопочка а вот в этой это можешь выбрать браузер и не расшаривать весь экран можно остановиться
00:04:52 - 00:06:36
В каком смысле [музыка] поэтому все демонстрация игра Да и продолжим Да видно [музыка] Так значит здесь я привык с подсказками если честно без подсказок я не знаю как найти буду говорить наверное так я это строчку раз плечу сделаю массив [музыка] Да я ставлю пробел [музыка] из каждой из них Мне нужно будет каждый из них Мне нужно будет Допустим цикл сделать дальше условия же там идет меньше [музыка] так каждая из них я наверное string там есть билдеры Link баферов которых есть реверс метод я создам еще
00:06:44 - 00:08:54
[музыка] вот так так я сделал такое же вот этот самый значит [музыка] мы можем положить слово мы можем положить вот этот наша индекс так из И теперь мы должны положить [музыка] два и там будет уже [музыка] здесь наверное так вот еще можно несколько раз здесь да Надо бы X здесь X и тогда здесь будет R2 там как-то [музыка] равна вот это вот B и там вот какой-нибудь метод но реверсе напишу какое-то Вот такая вот в принципе идея здесь написал разложил массив дальше я беру каждую переворачиваю и кладу в
00:09:19 - 00:11:22
противоположный Ну вот как-то так теперь бы я уже запустил посмотрел и если что-то вот не так уже бы подделывал А тебе стринг Билдер получается нужен только для доступа к методу реверс да да может быть он где-то в стринги тоже есть просто в этом точно я помню есть а вот Stream Builder бафферы они для этого созданы чтобы дёшево играть да и А вот и быстро Там на самом деле этот метод есть просто там не химия место предпоследнюю символа А с как доллар неправильно слова написал [музыка] да такой метод там есть
00:12:29 - 00:13:57
Ну вот Вот начало такое А дальше уже запустил посмотрел что из этого ты можешь запустить если зеленая кнопочка получится без этих подсказок понимаешь все что я делал [музыка] даже с третьей строки почему-то не нравится [музыка] Ему чем-то не понравилось слова и очень странно [музыка] пока что там у нас раньше было [музыка] простим слово допустим поставим APC А здесь будет соответственно Давай показ простой кейс тогда сплитом хоть нужно два все эти Ну ладно не нужны даже [музыка] вот как-то так странно ему сразу нравится
00:13:18 - 00:15:17
короче что это или Колчак импорт Java и о вот да Мне кажется нормально Давай тогда скопируем вот какой-нибудь вернемся в Java вот у нас все здесь есть 5 возвращаем классный код вроде как все [музыка] должно быть у нас Ладно не будем тратить на это время папа потом но в принципе твоя логика ясна у меня такой вопрос как бы ты решал эту же задача используя Стрим API Можно ли решить Ну ладно тогда не будем тратить время на решение просто расскажи про стриме как как его использовать и там у него ключевые особенности
00:14:56 - 00:16:45
но стрима 5 тогда это нужно было бы переложить коллекцию в какой-нибудь лист ты из массива из массива бы я очень сложно работает коллекциями все и в общем-то я бы там каждый [музыка] метод с каждым методом Я здесь просто использовал и его также быть сделал внешние вот так А смотри в стримах есть такое понятие как промежуточные функции и результирующие интермедиат И resul по моему на английском можешь рассказать в чем между ними разница и несколько примеров каждой функции да Так значит есть промежуточные главное
00:16:12 - 00:18:05
тема разница не дальше выдают Стрим и дальше все дальше Стрим не идет Он на этом методе заканчивается уже нужно чем он может закончиться он может закончиться допустим сложить здесь уже про функциональное программирование начал рассказывать Ну финальная чем он может закончиться он же это все функциональный интерфейс на этом основано Вот и идет такие вот интерфейсы мир это просто что-то делаешь операцию значит ничего это принял ничего в коллекции сложить еще что-то а можно сделать его в одну цифру допустим
00:17:21 - 00:19:10
у меня сейчас ещё тогда за тачка будет давай тогда я скопировать здесь в этот раз там что-нибудь да будет работать так это мы все удаляем давай проверим запускается или нет Что такое Почему у меня ничего не работает кстати прикол в том что я за несколько минут до собеседования все это запускала у меня работала Так давайте секундочку я тогда завершу эту сесси Может быть она какая-то запоротая составного пробую проверить работает она или нет и пришли тогда тебе ссылку так через секундочку а я в принципе понимаю в чем проблема
00:18:46 - 00:20:22
Я просто этот код ставил блокнот а возможно он меняет форматирование текста [музыка] буквально сразу начал ругаться Независимости [музыка] Так ладно секундочку так пока эти занимаюсь у меня тогда будет несколько вопросов можешь мне пока начать рассказывать про исключения Как можно обрабатывать Что такое Да исключение это опять же объект ориентированный язык объекты эти живые выбрасывает таких Ну можем ему писать выбрасывает при исключительно программа идет как говоря нашим языком [музыка] вот так вот выбрасывает объект виде
00:20:04 - 00:22:04
объекта эти объекты там From был среду и есть тоже иерархия для нас они важны тем что начать и встречаемся так Ну и расскажи тогда Как обрабатывать эти исключения [музыка] у нас то есть мы там пишем опять же Какое вид исключений Мы хотим работать есть вариант чтобы прямой несколько можем виды есть несколько блоков Мы хотим исключением работать в начале как бы нужно ловить детей и родители Родители Мы хотим сделать И тогда программа [музыка] а есть еще такой блок traw и finally для чего они используются
00:21:25 - 00:23:23
Файн или еще какой а тролл ровно это не блок это Файн или используем в основном какую-то логику все таки доделать если исключение допустим вылетел не перехватилась чаще всего используют по идее там для закрытия ресурсов всегда кроме таких случаев когда вообще программа ломается полностью когда ей уже нет тайны афроу мы как-то сами пишем значит исключение Мы создали класс А следованы там от фролога и в любой момент Можем сами выкинуть просто пишем хорошо так про исключением мы поговорили У меня как раз
00:23:04 - 00:24:52
заработал мой код Сейчас я тебе тогда скину тебе опять там нужно будет зайти экран ты уже шаришь все новая ссылка более-менее рабочий открывай тогда В общем вся проблема была с тем что я блокнот скопировал поменял кодировку текст Вот смотри у нас что здесь есть у нас есть класс импла и которого как будто какая-то уже моделька есть представим себе что вот мы будем тестировать Мы создали модельку сотрудника у него есть имя возраст и зарплата ну и соответственно там уже конструктор создали какие-то поля гетеросеторы и так
00:24:19 - 00:25:42
далее Вот и у нас цель Какая мы заполняем это данными Ну допустим нам опять возвращает но мы здесь это просто замок или в методе Main просто заполняем нашу коллекцию данными и выводим их первых нам нужно исправить вывод этих данных У нас сейчас все как-то странно выводится А во-вторых нам здесь нужно применить сортировку и отсортировать всех наших сотрудников по зарплате Ну допустим по возрастанию зарплата вот теперь это нужно реализовать каким-то одним способом Может это реализовать или рассказать Какие вообще
00:25:08 - 00:26:26
различные способы есть решить эту задачу потому что не только через Стрим это можно сделать Ну первое вот я любил работать со стримами [музыка] значит 1 нужно Через что мы хотим отсортировать Через что мы хотим через нам нужно первым на 1 это значит класс тогда им Play чтобы он интерфейс у нас реализовывал комплимент там пр комплимент комплект тогда он даст метод compair делать у тебя немножечко синтаксис страдает Ладно например и потом тебе нужно с на конце поставить комплимент потому что у тебя же теперь фиолетовым
00:25:50 - 00:27:45
сделал все окей Да и он нам даст значит меня так ампер был нам даст тебе Даймонд операторе нужно класс указать [музыка] контейнер был так вот даем Ну ты можешь просто скопировать да да вроде как теперь правильно хорошо Это один вот да и делаем компы допустим по зарплате так тогда у нас будет сортироваться о зарплате и наверное там есть метод о допустим писать да Давай напишем если рабочее решение будет Значит нужно метод на самом-то деле в зимах ты мог это делать и без добавления имплантамент comparable
00:27:13 - 00:29:06
можно сделать через анонимный класс в стримах уже внутри Если ты будешь делать через анонимный класс то там ты компаратор будешь использовать например его нужно будет переопределять Как раз так ну ладно тогда реализуй любой способ я услышал от тебя несколько вариантов я вижу что ты можешь различными способами сделать Попробуй реализовать один рабочий способ любой через стримы через компаратор через campireball любым способом Ну да давай да Тогда давай через компаратор значит стараюсь я тогда сделать
00:28:38 - 00:30:09
Так значит тут же в этом да здесь уже есть [музыка] Рим так и Стрим наверное есть что-то сорт есть кто там у нас [музыка] [музыка] на 2 нужно [музыка] Я один больше а тебе надо не болен значение возвращать тебе нужно int значение возвращать да да [музыка] компаратор значит тогда через тернарный оператор Да тебе нужно возвращать единицу единицу либо 0 если они равна на самом деле уже есть метод в ссылочном типе Double если напишешь дабл точка compair Все внутри уже будет он тебе даже подсказывает
00:29:41 - 00:32:14
и тогда уже здесь так тогда вот сортит и дальше мы подставляем тогда что там должно быть все распечатывать тебе нужно вернуть коллекцию а потом вот Форд и удалил часть кода Давай восстановлю смысл Какой все-таки распечатать распечатываем Сначала это вот Форд цикле хочешь чтобы было Согласно да Давай сделаем Согласно коду Вот тебе как раз нужно будет еще заменить Ну да мы считается меняем меняем Place [музыка] значит тебе нужно будет использовать терминирующую функцию про которую ты мне еще не говорил
00:32:13 - 00:33:58
Нет это в терминирующее Сейчас сделаю тогда мне придется новый лист сделать правильно Вот это можешь просто написать импла и равно импла есть точка Стрим или я могу вот ты можешь заменить уже существующий в чем проблема да ну да [музыка] [музыка] Ну смотри я тогда сделал второй лист вот здесь второй лист составил здесь бы дабы все бы это закончилось финальным хорошо делаем второй лист вот я тебе его сделал здесь тогда мы возвращаем на 20 на 20 строке 2 А зачем ты его сразу же пустил нет у нас implace 2 будет равно стриму
00:33:38 - 00:35:30
1mplay но тебе нужно вернуть коллега Тогда мне нужно коллекцию как-то он там называется вот я как раз и спрашиваю как называется терминирующая функция которая возвращает тебе коллекцию коллектор [музыка] вот как-то так известно что-то такое почти Давай я тебе исправлю вот так будет и Если статулист да Давайте попробуем запустить так тогда имплазии здесь тогда могут из этого уже берем да и зампла из 2 Да я уже исправно мне не оставь я 20 оригинал возвращаем а потом исправлены спускаем так Эра на 20 строке X5 пропустили точку
00:35:09 - 00:36:55
спит 21 где-то может быть Вот здесь Наверное нет этих [музыка] [музыка] легкая вот здесь вот наверное еще хуже начинается все здесь они тебе наверное после сразу поставить вот так [музыка] в порядке это сюда ritor может быть [музыка] а Да ничего не делаешь Так что у нас теперь странно так Нужно же эти методы Да да у нас уже Гетто пока что с коллектором у него не так а коллектор сани коллектор
00:36:16 - 00:38:02