Онлайн-собеседование, Coroutines! / Мобильный разработчик

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

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

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

    00:00:03 - 00:01:12

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

    00:00:38 - 00:01:47

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

    00:01:13 - 00:02:27

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

    00:01:50 - 00:03:02

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

    00:02:26 - 00:03:43

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

    00:03:04 - 00:04:15

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

    00:03:43 - 00:04:49

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

    00:04:16 - 00:05:25

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

    00:04:50 - 00:05:48

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

    00:05:20 - 00:06:23

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

    00:05:52 - 00:07:07

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

    00:06:30 - 00:07:39

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

    00:07:12 - 00:08:19

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

    00:07:51 - 00:08:59

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

    00:08:28 - 00:09:29

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

    00:08:58 - 00:10:10

  • есть вообще крутим builder и то есть их выделить несколько видов вот и в них мы уже можем работать со стен функциями а расскажи про картингов дыра до базовой это такие как вам chasing ран blocking фьюче секунд если не путаю вот первые три более часто являются употребление используется последние два я просто даже в практике не видел чтобы их любили давай про вот ланча оценку поговорим с тем они отличаются да ну launch непосредственно это builder который возвращает ну в нем когда происходит работа туда передают со спин блок на

    00:09:34 - 00:10:46

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

    00:10:10 - 00:11:16

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

    00:10:43 - 00:11:55

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

    00:11:28 - 00:12:37

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

    00:12:02 - 00:13:22

  • нас документ по собственно пойди нужно накрутить сделать такую мушка цепочку который будет означать нам список всех документов ты можешь предположить что ты находишься например либо в main функции до в консоли либо во вью модели как тебе удобнее так прошу прощение муж пошел спать задачи был зашарил экран да хорошо еще два метода api да я documents и диск который возвращает список иди шик и get документ в котором мы передаем ади документа который означает сон документ а нам нужно получить список всех

    00:12:42 - 00:13:51

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

    00:13:17 - 00:14:24

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

    00:13:53 - 00:15:05

  • выходе если я не буду что мы должны быть допустим давай ладно извини пожалуйста немножко перебью мы какой-то функции создаем где нам нужно на выходе получить список документ верно блага все так все верно отличный я так немножко для себя так сказать добавлю если ты непротив получается некая конструкцию сюда шлем ставку так отлично более цех работает окну и грубо говорят что происходит такой сил движение что нужно пробежаться по нашему документ айдида из [музыка] пример такой extension как которым такой достаточно как for each

    00:14:29 - 00:15:45

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

    00:15:16 - 00:16:29

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

    00:15:58 - 00:17:12

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

    00:17:04 - 00:18:14

  • будут то есть те будет один метод который будет скрывать реализация вот этих двух методов то есть я бы tagged документ который будет дергать гетто конце dice и в цикле там будет дергать я токами понял хорошо такой вопрос тогда такой нам важен порядок этих документов они должны быть по порядку или 30 не подходит в целом это не важно в целом это неважно но важно непосредственно скорость туда получите документов но для этого необходимо так сказать как я уже озвучил выше запустить некий цикл который будет ну

    00:17:46 - 00:18:54

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

    00:18:19 - 00:19:40

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

    00:19:04 - 00:20:28

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

    00:19:51 - 00:21:08

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

    00:20:39 - 00:21:54

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

    00:21:18 - 00:22:30

  • вызов juin у нас вот эти дочерней крутим же они ждут хорошим как говорится выполнится но целом да ну ладно давай немножко отошли в сторону в общем у нас со стен функция мы тоже можем запускать спин функции тысяч топлива скоб и при этом , не внутри так ласково по это кабель является наша i'm stuck skunk anansie эта абсолютно вот наши способ как можно запустить дочерние картины внутри со спин функции дочерней к рутинную три со спин функции используя супервизор job то есть для того чтобы объединить эти джо был под

    00:22:00 - 00:23:27

  • какой-то одно одну единую структуру сказать ну там скрине супервиза job as the pier визар скоб можно использовать либо телескоп на букву а ну в этом плане ну да и там указать диспетчер вода еще у нас получается foreach мы можем вопрос сразу имеет номеp чтобы нам вернулись нужные симки и потом их надежно будет это верное заключение вот и потом мы их можем дождаться не могу почти все блага опросов скобка страшно грубо говоря вот вопрос такой если у нас получается лишь тут да да отлично у нас получается

    00:22:45 - 00:24:08

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

    00:23:47 - 00:25:01

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

    00:24:36 - 00:25:56

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

    00:25:20 - 00:26:27

  • это говорить а чтобы ты положил этот контекст вообще что он из себя представляет и как добиться того чтобы был аналог прямо в моду скоpо так туда нужно если буду положить какой-то пул потоков то есть какой-то какой-либо dispatcher и обычного дополняет каким-то как можно сказать уникальностью виде джуба какой-то вот но грубо говоря наверное если говорить в де матос копию базовым не кажется main если не путаю поэтому и - копам позорной использовать да вот ну допустим да грубо говоря мы создаю указываем грузинском внутрь

    00:25:54 - 00:27:10

  • указываем dispatcher смен и создал бы наверное как раз таки вариации который я пользовался это supervisor джок для того чтобы если вдруг какой-то и закрутим произошла ошибка у нас остальные тоже бы полегли если так вот это ли просто перерыл по этим скупом то сейчас чем отличие между джо пай если привязать тобой обычные джо багеты у нас же может быть парень [ __ ] может быть зубы и как раз таки при ошибке в каком допустим у нас есть вот эта вот структура из одной чтоб у неё два child а если у нас происходит ошибка в паре

    00:26:32 - 00:27:41

  • джо питта у нас если это обычный jobo остальные джо папу который дочерние будут работать несмотря на то что произошла ошибка супервизор что как раз job как раз таки если произошла ошибка он скажет об этом остальным своим зубам да только наоборот да только на больном понимаю немножко да ну то есть у нас если пройдет ошибка и мы не используем супервизор job то у нас скоб умрет и мы там больше некие картины запустить не сможем образ немножко пожалуй мне рассказал про обработку ошибок дать это про нее поговорим об

    00:27:07 - 00:28:23

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

    00:27:45 - 00:28:57

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

    00:28:23 - 00:29:39

  • гончая sing up обработки ошибок [музыка] что-то помню что как-то вроде под воду ко мне там было но [музыка] плату что времени отвечу нет а так вот получается skype job is a job а у нас есть как мы уже использовали картин скоб и supervisor скоб а в чем между ними разница между скобами супервизор скопом да ну если говорить об аналогии то непосредственно все привез раскол по это некий скоб надо своими чал с копами и если произойдет ошибка в каком-то либо и scopus супервизор у джо принципе то будет

    00:29:03 - 00:30:29

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

    00:29:59 - 00:31:09

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

    00:30:38 - 00:31:43

  • она не дойдет до to play ласкал по 1 здесь получать нас будет проблема в том то что если бы мы использовали просто ланч ну допустим отправляли киты bfmtv аналитику и у нас где-то до зафейлилась все было бы ok но так как у нас используется sing to нам еще нужно в треке обернуть саму функцию a weight и там что то с этим сделать иначе у нас все равно но приложений упадет если мы там не просто великолепно хендлер ну да а что вообще происходит приказавший или допустим когда мы отменяем картину как об этом скол познаёт чтобы это не лишь

    00:31:11 - 00:32:24

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

    00:31:47 - 00:33:21

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

    00:32:36 - 00:33:50

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

    00:33:20 - 00:34:34

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

    00:33:58 - 00:35:21

  • сущностью крутим контекста также можем смешивать между собой с помощью знака плюс вот так хорошо крутит контекст dispatcher и джо бы ладно расскажи про dispatcher общаке знаешь вида дальше использовать какие-то ну грубо говоря это книги таки полу поток в которые нас будут работать наш крутин выделяют четыре основных это не путаю the main дефолт его и а can find вот непосредственно различие если говорить говорить хорошо вот main это непосредственно нашу я и поток который признан для того чтобы не будут викули штуку я потоп это быть

    00:34:50 - 00:36:19

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

    00:35:38 - 00:36:56

  • но аналог компьютер x а вот them can find it up алпатов который не привязан точнее когда мы указываем dispatcher can find мы не привязываем нашу картину какому-то конкретному потоку мы говорим о том что запустить в текущем потоки откуда мы им пишем код и дальше результат придет на какой-то поток который не имеет определенной местонахождение вот он сам придет или как это работает если не путаем и никаких операций с ним не дело может вам явно говорить о том что отпустит потока перейти к следующему с помощью функции и лт

    00:36:17 - 00:37:38

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

    00:36:57 - 00:38:13

  • предположим что нам нужно протестировать этот чисто соскам функцию документ ну для тестирования непосредственно когда приходилось тестировать крути на употреблял такой запуску рутины с помощью ран blocking то есть и внутреннего я уже был золоту саприн функцию которая была ранее написанное солью сравним результаты ожидаем его и того что пришло такое шрам blocking а зачем вообще отличается вот рамбла кент рамбла king of the run on rocking тест и от ран test run' блогинг это чисто не тестовая штука

    00:37:38 - 00:38:56

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

    00:38:17 - 00:39:29

  • ты имеешь виду прям в рамках конкретики вот этого кода который был написан грн ну можно в рамках него замок эти методы у тебя 1 оба будет дела и по секунде на допустим и в первом будет опасен три элемента если тебя было несправедливо тебя должна быть время три секунды в общем она будет ну да и те получается нужно определить что время было точно такое [музыка] это меня в google приходит я просто скорее всего вопрос к тому что есть какой-то уже встроенный вариант определения того самого но у меня в

    00:39:26 - 00:40:50

  • головы идут какие-то каста на решение виде костыли ну вот как раз если говорить про тиран тесты рамбла кинг тест там используется виртуальное время с помощью либо стандарт диспетчера и ним one can fight с патчера и мы можем манипулировать допустим можем добавить это время и проверить получить текущее время и сам это можно будет проверить хорошо картины нас за счет как то проблем с condition допустим когда мы обращаемся к общему стоят у и как ты его пытаемся мутировать если не путаю нет там есть свои

    00:40:14 - 00:41:26

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

    00:40:53 - 00:42:14

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

    00:41:41 - 00:43:03

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

    00:42:24 - 00:43:30

  • потеряли то производительность который мы потеряли при использовани примитивности псих хронизации жила она а какие еще способы кроме вот использование вот этих вот неё takes off ну допустим ну если так говорит мы можем какой-то dispatcher с пулом потоков в 1 то есть у нас будет еще один поток который будет переиспользовать это дано в принципе задумываться о всех они заз потоков не нужно если думать еще вариантах [музыка] так вот это про один поток как общем создать такой dispatch с этим потоком

    00:43:00 - 00:44:18

  • там по моему есть специальный метод я не помню кого он new fix ну фиксированный размер полу потоков и мы там зато он просто значения 1 и далее просто используем этот пул потоков то есть кастомных диспетчер получается надо можно так важно использовать limited параллелизм и указать прямо dispatcher а сколько потоков ты хочешь слышал что-то про акторы и как они вообще помогают в решении проблем с резким бешеными акторы да давно еще потом до того как я услышала flow но вроде как раз таки это инструмент который позволяет

    00:43:49 - 00:45:06

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

    00:44:30 - 00:45:44

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

    00:45:09 - 00:46:24

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

    00:45:47 - 00:46:55

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

    00:46:21 - 00:47:33

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

    00:46:57 - 00:48:17

  • буду у нас флауи по умолчанию холодной а какие операторы знаешь куда flow он each который аналог из эссекса next который позволяет обрабатывать элементы launch in для того чтобы привязать наш лук какому-то определенному скуку collect для того чтобы аналог сабскрайберов который позволяет обработать данные и по сути является терминальным оператором кетч который позволяет получить но обработать какой-то либо какой-либо шов который возникнет в данной цепочки ну и также всякие мапу суд флешмоб и в мерч ну короче там есть юрец а вот

    00:47:35 - 00:48:58

  • искал какие pt 2 типа разделил эти операторы глобально терминальные не терминальный а чем они отличаются между собой тем что по обработке терминального оператор у нас этот с почку прекращать свою работу и больше не будет поступать элементов шанс так а вот стал про холодный горячий flow а как сделать из холодного flow горячие по моему есть соответствующий оператор некоторых сейчас не могу предположить что типа что-то типа publish приняв что ваш там превращает как сейчас помню ход флаг но нет именно тип данных не помню

    00:48:20 - 00:49:47

  • нас есть it flow а ну дай такой упоминал но в целом да то есть это вот как раз таки основные реализации дано flow работают как раз таки шины данных пришли на замену каналам канал сейчас не используйте с не путай использует кратких две вариации и если говорить о том ну да вот стоит flow по умолчанию холодный шериф лаванда речи а не отличается shared и стать слова достать слову он опять же привожу аналогии не знаю зачем но я приведу аналог из рыкса public subscribers объект если говорить об немножко попутал в начальную не суть

    00:49:12 - 00:50:30

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

    00:49:51 - 00:51:31

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

    00:50:48 - 00:52:10

  • подписаться на обновление данных из он текст далее нужно это значение с помощью ряда цепочек так обработать чтобы сработал корректно что я имею под этим виду необходимо сделать так чтобы у нас одна и та же стропа и значение не иметь или search и чтобы у нас не было 2 запросов одинаковых подряд также необходимо поставить что-то вроде ти bounce и для того чтобы не было лишних вопросов я бы так сказал вот и также нужно рисовать что-то вроде switch мапо для того чтобы у нас по приходу нового string видео отменялось

    00:51:34 - 00:52:51

  • предыдущий запрос вот это в теории а так вот ты будешь подписываться получается вот эти изменения но вообще если говорить о практике бы использую что keep корбайн для того чтобы ну который отвечает краски за преобразования всяких юных или событий в flow но если говорить сейчас ну я бы создал [ __ ] ну то есть там есть такой у нас прям записи создания flow flow и здесь мы можем вызывать и мирта и иметь какие-то значения соответственно прилетали элементов в этот call back италия бы и метил в наш клуб vitalex

    00:52:14 - 00:53:33

  • опрокидывал по цепочке тогда получается нас каждый раз будет создаваться новый flow это факт я не то что мы хотим вот как раз можно вспомнить про холодный горячий а ну да как раз таки можем за использовать что-то вроде наверное стоит flu и непосредственно иметь туда данные по приходу в нашем тексте колд call back и далее на эту стойку уже строить цепочку ну да давай так и сделаем так вокруг говорят о будем да тут [музыка] нас получается ну вот так это ты писать что-то вроде что это у нас колпак на далеко функция по

    00:53:04 - 00:54:42

  • сути имеет к этому как раз таки если не ошибаюсь поправьте если ошибаюсь у нас и metabo стоит лоссу что я столько в каком скупы верно игра имеет есть если можно тремя это если ты хочешь прямо стоит flow то он содержит значение прям well you do можем прямо в принципе да что-то типа функция коров где мы будем соответственно опять же какие перечитал нужно что-то вроде тебоу тинга по моему если не путаю есть оператор типа нс но поправьте если ошибаюсь он в эксперименту api будет или нет ну там много всех операторов

    00:54:28 - 00:55:49

  • experimental api [музыка] можно сказать как он работает соответственно оператор который принимать на вход какое-то временное значение допустим 300 миллисекунд говорят говорит о том что если нас пользователь ну допустим в этот стоит flow не появлялась по приходу нового ими то проходит заданные нами временное значение он забирает этот имеет если это временное значение не прошло и появился новый и мид он будет ждать это временное значение и только посту как она пройдёт он заберет от дымит возможно future in как-то рассказал но

    00:55:30 - 00:56:44

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

    00:56:07 - 00:57:35

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

    00:57:05 - 00:58:35

  • с рэксом есть операторы которые позволяют как то перехватить ошибку не допустить терминального состояния цепочки но могу ошибаться есть такие оператора как за все отвечает а чтобы то сейчас произойдет ошибка допустим вот ты написал печь после bouncy нас произойти допустим ты написал после свечи мед у нас же пока произошла в ночь он и обработает так если мы и засунем вот подсечь map и если ошибка произошла вынуждены ну так например так [музыка] если не путаю нет то есть нет работает мне просто приходит на логика того что у

    00:58:25 - 00:59:55

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

    00:59:16 - 01:00:31

  • потом распространяется действие он распространяет наверх а если насколько операторов таких хочется ответить исходя из рыкса потому что это на высоту район это не совсем аналог subscribe ну вот да потому что если путаны раскраска и есть единый то есть нет аналогов surf она и он как раз таки помимо изменения полу потоков экстрима он еще как-то трогать downstream если нас будет несколько слов он то я думаю у нас так же как и с открытым поведения будет будет работ отрабатывать только 1 ну точнее 1 будет отрабатывать для

    00:59:58 - 01:01:22

  • стрима последующей план 308 и спереди пример с места работы если мы вот так вот сделаем поспешно будет отрабатывать в моем потоке непосредственно все что выше 1 флакон это будет отрабатывать в его хорошо да а а как нам изменить dispatcher у коллектора до 18 лет да есть такой на звонили в контекст которые позволяют переключаться между dispatcher а насколько память здесь будет ошибка стачиваем если мы пытаемся так изменить потому что мы должны по сути это балетном том же потоке на котором асв модуль скоб

    01:00:46 - 01:02:13

  • то есть именно будет схема the scope отвечает за то где мы будем его крепить и [музыка] окно и давай наверно последнего опроса вообще-то как бы ты тестировал бы flow и допустим горячий flow если это было бы стать flow или шарик flow как бы ты его протестировал так как все если говорить вообще если говорить о тестировании flow есть что-то типа библиотеки турбина если не путаю доводил все только видеть но не использовать но на как раз таки позволяют себе имеет очень много тестовые 5 которые можно использовать

    01:01:43 - 01:02:57

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

    01:02:23 - 01:03:34

  • стоит и мы отправляем ивенты и мы хотим проверить что у нас стоит и были там друг с другом приходили так ну соответственно если мы хотим проверять что там что-то идет друг за друга мы должны завести этот но структуру state of которые мы хотим сравнивать оля некий expected резалт дальше по мы с не путаю там скрутили поставляется какой тест коллектор который позволяет при употреблении kotova ног которого у нас тут как раз таки летит туда вот эти вот стоит мы можем сравнить эти стоит и по приходу нового и дали если степени

    01:02:57 - 01:04:15

  • равна выкидывать о том что то есть не прошел хочется понять саму проблему при тестировании стать flow склад горячий тип the flow как нам понять что этот flow завершился закончился сейчас выполнение чтобы он остался бесконечно [музыка] несу не путаю там конкретно api у этого стоит слово так щас секунду я бы предположил что там есть какой-то флаг который позволяет определить находится ли сейчас стоит flow в работе и делает ли он что-то если он ничего не делает то как раз таки это сигнализирует о том что у нас уже заканчивать тест

    01:03:39 - 01:05:09

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

    01:04:42 - 01:05:59

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

    01:05:22 - 01:06:38

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

    01:06:02 - 01:07:26

  • например да если у нас там пропустим через global с к опытам kasing и кенинг сообща вообще ничего не произойдет это бой только когда мы вызовем a weight дать очень нужно обернуть что у нас эксепшен присылается мире строк делается а переходит по иерархии job закручен sex offender мы можем установить только туда иначе у нас дальше все приложение рухнет про отмену картин у нас до когда я сказал лишь exception-ы он отменяет все но если мы сделаем потомка этого consolation exception to отменится только текущая картина остальные она не

    01:06:44 - 01:08:02

  • задействует и вот да самое такое был сложное тестирование решение ну как и сказал то что у нас теперь новый 5 us and test он использует стандарт с dispatcher который используют дать тест scheduler который позволяет управлять виртуальным временем то есть все дела которые она запускается внутри этого скупо они будут игнорироваться то есть это будет происходить моментально и что позволяет нам вот такие штуки проверить как например правление выполнения функции и так далее но с этим весь от сложности потому что если ты

    01:07:23 - 01:08:35

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

    01:07:59 - 01:09:12

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

    01:08:35 - 01:09:59

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

    01:09:17 - 01:10:30

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

    01:09:59 - 01:11:11

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

    01:10:34 - 01:11:38

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

    01:11:07 - 01:12:17

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

    01:11:44 - 01:12:51

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

    01:12:17 - 01:13:28

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

    01:12:53 - 01:14:08

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

    01:13:30 - 01:14:33

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

    01:14:02 - 01:15:11

  • комментарии так далее увидимся с вами в следующих видео всем спасибо спасибо пока

    01:14:38 - 01:14:53