Flutter interview of a MIDDLE+ developer | He did not expect such questions!

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

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

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

    00:00:00 - 00:01:09

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

    00:00:46 - 00:02:07

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

    00:01:26 - 00:02:49

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

    00:02:07 - 00:03:19

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

    00:02:43 - 00:03:45

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

    00:03:15 - 00:04:24

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

    00:03:49 - 00:04:54

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

    00:04:24 - 00:05:36

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

    00:05:02 - 00:06:23

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

    00:05:42 - 00:06:53

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

    00:06:18 - 00:07:21

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

    00:06:49 - 00:08:03

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

    00:07:26 - 00:08:49

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

    00:08:08 - 00:09:19

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

    00:08:46 - 00:09:52

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

    00:09:19 - 00:10:25

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

    00:09:52 - 00:11:01

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

    00:10:26 - 00:11:44

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

    00:11:06 - 00:12:08

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

    00:11:37 - 00:12:42

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

    00:12:09 - 00:13:30

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

    00:12:52 - 00:14:56

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

    00:13:54 - 00:15:25

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

    00:14:51 - 00:16:34

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

    00:15:46 - 00:17:25

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

    00:16:42 - 00:18:00

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

    00:17:21 - 00:18:26

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

    00:17:53 - 00:19:14

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

    00:18:34 - 00:19:41

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

    00:19:07 - 00:20:43

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

    00:19:58 - 00:21:03

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

    00:20:31 - 00:21:40

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

    00:21:12 - 00:22:33

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

    00:21:52 - 00:23:20

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

    00:22:37 - 00:23:48

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

    00:23:17 - 00:24:34

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

    00:23:56 - 00:25:07

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

    00:24:37 - 00:25:58

  • называется методы только начиная с из я тоже стринги стринги подклассу d'arte он уже есть документ от из на тенте sting да не помню я помню down и ввести есть там тоже есть издаете neznot mc тут я думаю что тут уже другой нужен ли нам этот функционал то есть почему например в списках определенным этот метод есть is empty etna темпе потому что она например списках нам нужно часто проверять как на пустоту так и не на пустоту и поэтому для этого сделаны отдельные методы тоже самое со строкой окей тогда я думаю что это был последний

    00:25:17 - 00:26:38

  • вопрос по дарту перейдем тогда к туру по flatron поговорим начнем со следующего вопроса первый мой вопрос это на какие архитектурные стоит делиться фатер и зачем нужен каждый архитектурный слой так но всего слоя 3 у нас это фреймворк engine и мвд что стоит им по каждому сам по себе слой from gorg в нем находятся наши основные классы с которыми мы в основном работаем там купертино материал то есть то начнем напишем наш код the data с помощью мы пишем наш код потом engine это по сути своей вся внутренняя кухня сам по себе

    00:26:00 - 00:27:31

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

    00:26:47 - 00:28:09

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

    00:27:27 - 00:28:52

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

    00:28:11 - 00:29:10

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

    00:28:41 - 00:30:06

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

    00:29:23 - 00:30:33

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

    00:29:58 - 00:31:03

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

    00:30:30 - 00:31:37

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

    00:31:07 - 00:32:24

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

    00:31:45 - 00:32:47

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

    00:32:17 - 00:33:50

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

    00:33:03 - 00:34:19

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

    00:33:43 - 00:34:47

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

    00:34:15 - 00:35:23

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

    00:34:48 - 00:35:56

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

    00:35:24 - 00:36:31

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

    00:36:01 - 00:37:21

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

    00:36:41 - 00:38:06

  • stream box не могу вспомнить наверно он все-таки связано с чем-то и он наоборот нам не позволяет тоже выходить за рамки кастинг on constrain бокс он не позволяет выходить за рамки самого бокса но при этом он убирают все constraint и которые передавались выше правильно хорошо давай перейдем тогда пойдем дальше следующий вопрос это чем response of отличается от адепты то есть у нас есть можем сделать наше приложение рис panther можно делать его адепты и чем чем будут вот эти два понятия друг от друга отличаться

    00:37:26 - 00:38:54

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

    00:38:11 - 00:39:22

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

    00:38:48 - 00:40:07

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

    00:39:27 - 00:40:47

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

    00:40:07 - 00:41:04

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

    00:40:36 - 00:41:59

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

    00:41:24 - 00:42:49

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

    00:42:08 - 00:43:16

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

    00:42:42 - 00:43:57

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

    00:43:22 - 00:44:39

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

    00:44:00 - 00:45:13

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

    00:44:36 - 00:45:41

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

    00:45:09 - 00:46:11

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

    00:45:40 - 00:46:54

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

    00:46:17 - 00:47:35

  • были во flat eric ты читала нет вот но прям на практике применять не приходилось чаще всего на практике применялся блок ditex либо же стоит составить вас виджеты [музыка] вот ты затронул тему wrecks дар то есть у нас замечательная библиотека как rx дарт но при этом у нас есть свои стримы на уровне дарта на уровне дарт опять зачем нам рыгдард если есть стримы 5 хороший вопрос ну в общем суть в чём да у нас есть прекрасности выпив которым есть базовая конструкция базовая работа со стримами но рэкс дарт

    00:46:56 - 00:48:19

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

    00:47:38 - 00:48:36

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

    00:48:07 - 00:49:22

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

    00:48:46 - 00:50:07

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

    00:49:27 - 00:50:41

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

    00:50:06 - 00:51:15

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

    00:50:40 - 00:51:55

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

    00:51:18 - 00:52:26

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

    00:51:52 - 00:53:33

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

    00:52:43 - 00:54:00

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

    00:53:23 - 00:54:38

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

    00:54:01 - 00:55:14

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

    00:54:38 - 00:55:50

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

    00:55:14 - 00:56:48

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

    00:56:00 - 00:57:00

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

    00:56:30 - 00:57:46

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

    00:57:08 - 00:58:19

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

    00:57:43 - 00:59:44

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

    00:58:55 - 01:00:27

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

    00:59:47 - 01:01:06

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

    01:00:27 - 01:01:58

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

    01:01:12 - 01:02:34

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

    01:01:53 - 01:03:11

  • одном из самых высоких уровней я надеюсь что в мире но на данный момент по крайней мере в восточной европе так точно вот как то так ну и второй вопрос вы не берете конечно мы тебя берём ты прошёл интервью offer мы подготовим в течение двух секунд а вот собственно наш оффер приглашаем вас поработать немножко преподавателем по нашего лабу фото fill up вы как не против я только за вот такой вот получился у нас выпуск затем to do here пожалуйста не надо 12 давай ты будешь потом разминаться когда когда мы тебя

    01:02:32 - 01:04:01

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

    01:03:21 - 01:05:04

Менторы

Специалисты своей области, которые смогут помочь вам

  • Нигма Нурия
    Нигма Нурия

    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

© 2024 HireGuru. Сделано в Санкт-Петербурге с hireguru.ru