Собеседование Senior Android разработчика. Часть 2

Подготовка к собеседованию на Android Developer

Транскрипция видео:

  • Так ну ты это ранее говорил про дженерики Ну да есть такая штука классная штука первый раз Кстати когда я воспользовался дженериками Это я делал для списка в Ю холдер абстрактный То есть у меня был скажем так список целый список разных разных типах девушек вот которые у которых вернее так был список у него были девушки одинаковым поведением но разным типа не совсем одинаково похожим общие черты вот и мне понадобилось сделать абстрактный холдер от которого все они будут наследоваться Ну и наследовать его общее поведение вот и не

    00:00:00 - 00:01:38

  • нужно было там разные типы иногда передавать и на дженерик идеальный вариант я делаю общий тип говорю ему что там Т на следующий ся от чего-то ну плюс я делал через юанин это все То есть я передаю конкретно ему холдеру и вот так это все работает то есть я через дженерии могу указать что я передаю какой-то тип дальше я говорю что я с этим каким-то типом буду что-то там делать Вот конкретно реализации уже не абстрактный в реализации конкретно вот там я передаю конкретный Тип и соответственно этим типом всеми методами

    00:00:52 - 00:02:19

  • мне не надо ничего кастить я уже спокойно Вот так но это одно из применений конечно это далеко не все знаешь про ограничение сверху и снизу Да ну получается когда ты [музыка] О как же там какой-то ключевое слово даже не слова там Как через там какой-то ключевое слово когда ты можешь получается только указанный классы все кто его наследует ниже него Ну и наоборот указанный класс И все кто выше него вот такие так так так так знаешь так и на Вот это конечно уже а принципы пекс принципу peks блин то же самое что соли

    00:01:36 - 00:03:21

  • только Да что-то конкретное для дженериков Да какая-то такая так и есть на самом деле ты специально дженерики Да да это прям в Джаве над этим вот так вот прям там прям реально люди поклонялись этим принципам Давай пойдем такой момент у нас есть вход не Star projection еще раз Старт projection это когда мы в головатых скобочках звездочку Почему не к прикольный кстати вот интересен просто никогда не задумывался но не знаю к этому может просто логики Java пришедшая не знаю Просто ну в Джаве же этот был как он называется Нет Ну да

    00:02:37 - 00:04:03

  • обжигание и для места Star projection там был вопросительный знак интересно загрязнение хипа это типа какие-то не такие дженерики ставить Ну смотри чем прикол это такая ситуация когда переменная какого-то ароматизировать типа да получается на объект но не относится к этому который как бы не относится к этому типу типа мадри у нас слишком общий тип про это или да да слишком типа и не туда Пикник вообще как бы типа конкретный да да вот смотри интересный момент Можно ли получить в рентаме доступ к типу

    00:03:40 - 00:05:23

  • дженерика Ну по классу по моему можно стать как чё-то что-то там такое есть по моему и не уверен но должно быть но Рефлекс и нам точно здесь уже давай нельзя К сожалению больше так Окей А знаешь ключевое слово rifight это что-то знакомое Вот что я помню что есть такой ключевое слово но тоже не как она с инвалидом связано с онлайном refight Короче я знаю как работает онлайн функция но как refine собственно это к предыдущему нашему вопросу дженерика типа дженериков он знает то есть мы можем получить

    00:04:52 - 00:06:36

  • доступ к информации класса Вот это рифань да рифа делает как сейчас обычная лямба которой это можно было сделать в Java она делает анонимную функцию и соответственно генерит класс она не вот онлайн функция просто оборачивает код который в онлайн функции берет Бади и оборачивает его в него Вот то есть при компиляции он обернет это и это не будет одним одной функцией вот мы просто берем кусок кода который вокруг пихаем его отдельно и используем много раз надеюсь что так правильно тогда иначе нет смысла

    00:05:55 - 00:07:30

  • это делать интересные вещи насчет кросс-лайн инлайн и чего-то еще вот эта штука когда вот я использую всегда Cross line я других не использовал кто слайды это как раз о использовании объекта в лянди чтобы ты мог если это кросс-лайн ты бля мне можешь использовать Объект который у тебя есть внутри функции вот этой функции что-то делаешь И ты можешь внутри лямбда использовать когда ты это не можешь использовать суть [музыка] суть но инлайна но как бы логично что если ты делаешь функцию что тебе кросс-лайн нужен Вот но

    00:07:12 - 00:08:42

  • объясняет это так что там может быть несколько Баги по идее может быть такое что тебе в одном Бади ты хочешь разрешить а в другом нет и тогда ты можешь одно Бади сделать кросс online а второй не делать Делать но тогда типа ну вот такая вроде как логика но опять-таки но мне не приходилось использовать и же нас конствовал есть как она работает оптимизированная довольно штука которая и нити ца и хранится Константа интересно Final какой-нибудь Джаве она просто на Inline не написано это тоже онлайн у нас интересно

    00:08:04 - 00:09:37

  • инлайн класс юзал Да как они сейчас называются велью класс Ну да онлайн когда ты этот внутренний класс запихал в другой класс Ну да у нас используется проект много у нас Мне она не очень нравится скажем так весь сделан сделан общий адаптер для всех списков Вот он абстрактный у него и получается есть свой вьюхоудер вот там комплект из veholder адаптера и там как-то Так ну то есть типа абстрактный айтом с которым работает этот холдеры с которым работает адаптер Вот такая Такой комплект объектов с которым Ну который во всем

    00:08:58 - 00:10:46

  • приложении одинаковые везде все наследуется от него и все от него делать Вот у него есть получается вот классный холдера Он делается инлайн всегда сложно работает и Например я услышал Так ладно что там был вопрос котлин эти картинки вещи которые позволяют гениальным гениальным образом обходить многопоточность вот как-то так же суть как раз том что они не блокируют поток продолжают его работу просто типа вернется в какую-то его точку и продолжит выполнение что они превращаются в Java не становятся такой

    00:09:57 - 00:11:41

  • у него есть ключ там типа первый экшн выполняется и каждый со spand функция она следующий мы переходим в первый выполняем его как только он выполнится все вернется в него он переключиться на второй запустит эту же функцию еще раз вот таким путем достигается Вот это гениальная штука самое смешное что оно было создано в каких восьмидесятых семидесятых когда она там нос программа Прям давно-давно были только сейчас Ну да а что можно сказать про трактор Не скажу ничего про то что у нас надо Правильно так

    00:10:59 - 00:12:28

  • сказать блоки расставлять чтобы они друг друга опять же коротенький тоже друг друга не воевали Ну это какой-то принцип Да это принцип Как работать с карутинами блоками То есть все блоками структуру чтобы все было друг за другом что портака не было И если ты вдруг где-то И за что такого остановки мира прям чтобы явно Явный пользователь У нас есть карантинском да да это штука которая состоит из четырех объектов так по крайней мере написано в документации вот там диспанчер типа поток в котором выполняется

    00:11:56 - 00:13:27

  • Job Объект который управляет этого хендлер который там Ошибочки может отловить и что-то еще что-то не помню что-то там есть еще с картинками на самом деле можешь сказать чем нравится между во кстати Недавно как раз читал про это дроп обычный получается он закончится когда он прервется когда прервется любой Ну когда прервётся сколп или когда Ну типа сломается что-то внутри вот супервайзер он будет жить а чтобы со скопом чтобы снимите внутри него порядка картинка вот он как раз если я не ошибаюсь он как

    00:12:47 - 00:14:27

  • раз прервет все крутинки остальные тоже что-то такое вот какая-то такая в нем есть функция штука что-то они могут друг от друга завести собственно там другие будут ожидать Так что проще все убить лето нужно быть обрабатывать смотри можешь скачивается между холодными горячим потоками горячие потоки они по сути они горячие парни они кидаются данные во все подряд вообще во все стороны подписываться не подписаны вот холодный кидать только на конкретного подписчика а горячее кидает просто так везде Вот вот Точно Вот такая

    00:13:43 - 00:15:18

  • знаешь про bether обратное давление такая ситуация нам прилетают данные Они прилетают так быстро что мы еще не успеваем их дальше обрабатывать Слушай что-то незнакомое прям мы когда не работали мы писали еще дуон конфликт чтобы ожидали сначала завершения а потом уже что-то делали Ну да было такое самом деле нет то есть таких есть конечно да он компрессия к такая штука но она сейчас чуточку по-другому работает как-то там по интересному то есть Ну не знаю Она сама как бы у нас есть холодный поток принципе у нас от этого должен

    00:14:39 - 00:16:08

  • горячий это пофиг это пофиг собственно вот уже встроенная потому что это уже есть в нем прям плит и всякое такое знаешь как переключить цепочка из потоков ой цепочки Как ты можешь переключать потоки этих На каком потоке работает интересный момент да Там просто один метод надо там какой-то метод есть до для этого которые типа блин я не помню название он прям когда то есть мы расписали Flow там сделали все наши манипуляции и точка ну сменить то потом другие манипуляции сменить так знаешь про обработку ошибок

    00:15:39 - 00:17:12

  • он обработка ошибок Flow интересный вопрос Там какой-то хэндлер же свой есть давай про операторы поговорим какие есть операторы Вот Но мы Хотя не знаю может мэп такой олдскульный все его знает Мы здесь используется трансформ какой-то новый называется трансформер Ты понимаешь что вот потом там есть какой-то какой-то еще оператор как раз для управления потоком какой-то по моему там есть оператор что-то такое ты правкатов вот этот вот какой-то там есть оператор Он уже управляет выводами Ну то есть

    00:16:39 - 00:18:22

  • мы когда запускаем 2 вот запустили контакт в нем 2 и они у тебя получается прилетают как бы это по очереди 1 потом 2 есть они уже пролетают вместе Либо так либо так тебе хочется и мелкий типа там не знаю вот и какой-то какой-то еще есть оператор emit это это не оператор Да это функция которая чисто выведет Да да это другое а этот collect типа который собирает это все это просто собрать оператор последний самый такой фильм твой фильтр до последней У нас есть два вида Flow это стоит матерический какой-то Я не знаю один единственный

    00:17:34 - 00:19:41

  • сингл типа синглтона единой какой-то вообще тоже верно в теоретической части

    00:19:17 - 00:19:27