Подготовка к собеседованию на Android Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
[музыка] [музыка] Всем привет С вами Android brow Cast Я Кирилл Розов мы снова после долгой паузы возвращаемся к собеседованиям будем снова проводить их смотреть как они проходят И вообще знать много чего интересного сегодня у нас достаточно интересный формат мы будем проводить System Design проводить Его будет Серёга боишься и залита текст Серёг привет Всем приветики Да Серега у нас далеко Поэтому если вдруг у нас будут какие-то небольшие технические проблемы Извините постараемся в финальном этаже тогда там
00:00:00 - 00:01:11
поправить и сделать все намного лучше но надеюсь нас это избежит и у нас все будет хорошо и в принципе основное внимание мы сегодня будем уделять кандидату А это у нас Андрей привет Привет Да Серёга Расскажи пожалуйста что у нас сегодня ждет за формат вообще для чего он проводится прочим чтобы больше представляли о том что сегодня у нас будет такого интересного если пойти там с далека когда Android разработка начала зарождаться это было позже чем backend и поэтому все практики нам приходят позже и такая
00:00:51 - 00:02:03
часть интервью как System Design тоже пришла позже в каких-то крупных компаниях она была там в каком-то виде называли это секция архитектуры но там обсуждался слишком маленький скоб и по этим обсуждением ты мог проверить только то что кандидат знает какие-то паттерны например или знают что такое поэтому Когда наша индустрия доросла на мобильных мобильных разработчиков начали тоже спрашивать А как вообще спроектировать приложение как будто вот тебя его нет и вот этот этап входит много всяких штук но Основная это
00:01:28 - 00:02:44
наверное то что мы должны как-то верхнеуровнево обсудить из чего будет состоять наше приложение под наши требования и потом эту схемку крутить с разных сторон И быть приятными собеседниками Наверное потому что важно на этом собеседовании проверить то как вообще кандидат умеет формулировать вопросы как он умеет их решать учитывать какую-то информацию от интервьюера поэтому мы не будем уходить в дебри бэкенда у нас будет стандартная приложение Android которое мы будем проектировать Вот но возможно если
00:02:07 - 00:03:30
кандидат сам проявит инициативу мы там зайдем куда-то дальше и что-нибудь и про бэкенд обсудим но я пытаюсь придерживаться таких принципов чтобы спрашивать обсуждать то что кандидат будет делать на реальной работе Поэтому Мы представляем что наш кандидация беседуется на позицию продуктового Андроид разработчика его Задача будет думать о мобильном приложении его проектировать в первую очередь разрабатывать скорее для него как внешний сервис в разработке которого он не участвует Но может наверное зависит
00:02:48 - 00:03:59
от компании команды давать какой-то фидбэк и знает какие-то возможно справитесь но опять же Это все опционально зависит от кандидата Окей хорошо Андрей ты можешь немножко рассказать про свой опыт чтобы лучше представляли что у тебя за плечами и с чем ты пришел к этому собеседованию Да конечно Меня Андрей зовут Я работаю продуктовом разработчиком два года в Delivery Club в целом У меня Android разработки 5 с копейками лет Вот соответственно продуктовой команде мы естественно дизайн используем когда над
00:03:24 - 00:04:33
каким-то крупными вещами работаем И когда с другими Android разработчиками работаем над какими-то совместными задачами соответственно тоже проектируем различные решения обсуждаем вот пытаемся выработать какое-то идеально э соответственно Ну до этого я тоже проходил в нескольких компаниях э там собеседование по сельским дизайн поэтому интересно будет сравнить формат Интересно будет посмотреть что в итоге получится такое решение Вот и соответственно тоже получить какую-то обратную связь какие-нибудь советы там в крупные
00:04:02 - 00:05:05
компании там наши российские или вот зарубежные то есть где вот действительно Там прям фокус делают большой на этой секции Да ну я насколько понимаю там в РФ действительно как сергиевского не так много компаний в целом дизайн проводят я проходил собеседование очень понравилось Я проходил собеседование в Яндекс в целом Тоже неплохо вроде прошло ну и в иностранные тоже некоторые компании проходил э-э там как будто бы сейчас это обязательная секция на уровне алгоритм Ну чаще всего если про объектив речь
00:04:35 - 00:05:43
идёт не про маленькие компании Хорошо Давайте тогда переходите к основной части в принципе что нас сейчас ждёт мы начнем именно собеседование Серёга будет давать какой-то постепенно фидбэк в конце мы Ещё обсудим результаты Серёга поделится своим мнением Андрей поделится мнением и конечно отвечаем на ваши вопросы в процессе всего этого вы в чатике можете накидывать свои вопросы там свои какие-то ответы видением проще будет очень интересно с вами обсудить потому что ребята будут общаться вдвоём А я буду тут как раз с вами в чатике
00:05:09 - 00:06:04
обсуждать тоже накидывать может что-нибудь посмотрим Серёга меня уже один раз прожарил посмотрим чего тут раз получится я сейчас буду Пока ничего не видит я буду в чатике все прожаривается все что тогда я вас оставляю и поехали да Давай сделаем вид что как будто мы не знакомы и будем делать что мы знакомы в моменте когда после каждого этапа я буду давать фидбэк давай сразу решим будешь ли ты его слушать Мне кажется в этом ничего такого нет но каждого Может фреймить как-то этот фидбек поэтому мне
00:05:37 - 00:07:00
не принципиально хочешь ли ты возможно тебе просто будет сразу что-то комментировать и было бы круто там я что-то скажу и ты по этому поводу что-то ответишь например как на самом деле ты там внутри думал и что ты думаешь по поводу меня например но последние вряд ли Да я буду греть Nokia Я понял это наш первый трейдов Вот и потому что ну почему трейдов Потому что если я буду слушать я могу как-то подкорректировать Может быть прям сразу свое поведение и соответственно решение Но если не буду слушать Может быть я не
00:06:22 - 00:07:23
буду расстраивать окей Да я буду слушать на самом деле мне кажется плюс здесь больше [музыка] Да еще мы договорились Я как интервью считаю что эта секция Она довольно редкая поэтому я пытаюсь как-то помогать всегда разработчикам и тебе будет довольно сложно отличить что я так веду себя Потому что это публичное интервью или я так веду себя всегда на таких собеседованиях Я хочу сказать что я это собеседование считаю типа не типичным сложным Поэтому я всегда пытаюсь как-то грубо говоря если знания Андроида я не
00:06:53 - 00:08:17
подсказываю А вот в этом непонятном процессе что вообще я ожидаю кандидата вообще непонятно то есть вот он что-то рисует что-то делает и непонятно он попадает в то что мне нужно или не попадает поэтому давай первым этапом как я со всеми кандидатами делаю обсудим Вот как ты представляешь что я сейчас буду грубо говоря проверять что мне важно там от тебя а я тебе скажу что я что на самом деле мне важно сейчас от тебя будет слышать и как я бы хотел это видеть Да Могу поделиться мыслями как мне кажется в целом там как у любой секции
00:07:37 - 00:08:55
там алгоритмы не знаю платформы и так далее задача основная оценить знания кандидата соответственно в которых разбирается таких моментах разбирается плохо и так далее В целом здесь Наверное хочется еще понять как кандидат коммуницирует как он принимает свои решения Обязательно как он в целом реагирует на какие-то замечания не знаю подсказки и так далее Ну и как целом наверное проектирует систему потому что кажется что это дизайн это в работе реальный процесс когда люди вырабатывают какую-то архитектуру Которую потом будут
00:08:16 - 00:09:29
реализовывать вот у меня какое-то такое представление еще такой вопрос смотрел ли ты в интернете видео о том как подобное интервью проходится Я так понимаю Ты проходил там подобные и есть такой еще полезный документ Всем рекомендую загуглить потому что я изначально когда пытался этот процесс строить Avito вдохновлялся им называется если загуглить Mobile система большая только со всякими интересными фактами об этом процессе этапами его сделал По моему разработчик из Гугла это репозиторий он там описывает какие этапы он видит Какие
00:08:52 - 00:10:19
ошибки совершают интервьюер и кандидат и все такое вот видел или ты Этот документ Да я видел Если ты про там Алексея Алексея ну и соответственно интервью его по разным соответственно темам там библиотеки тоже иногда попадались тоже видел несколько Вот это круто это круто И всем кто слушает рекомендую кто не видел обязательно посмотреть почитать это супер классно второй момент важный насколько ты уверенно чувствуешь себя в рисовании квадратиков и стрелочек потому что я часто сталкиваюсь с тем что кандидат
00:09:36 - 00:10:55
стрессует из-за того что он там не знает как правильно что-то нарисовать или не понимает он что-то рисует Правильно ли он рисует Да вот как ты вообще ощущаешь себя Вот ты типа уверен что ты сейчас знаешь как что-то хочешь рисовать или если ты не уверен я тебе могу просто вкратце нарисовать вкратце рассказать чтобы я хотел увидеть на этих диаграммах потому что их по-разному можно сделать Там миллион тысяч рисунков Ну я могу Наверное обозначить свое видение Опять вот а потом если оно сильно расходится с твоим но и наверное
00:10:23 - 00:11:35
с тем что будет самым зрителям то можешь сказать Я насколько понимаю ну обычно Если речь про какие-то там приложение продуктовых крупные и так далее У нас соответственно будет в любом случае сначала будет требований Чтобы понимать как вообще это все работать будет и так далее потом я бы хотел накидать какую-то верхнюю уровне схему это просто компоненты и так далее без связи и потом уже можно какие-то детали углубиться в плане там работать с калибровая у меня вроде проблем нет главное что не в миру
00:10:59 - 00:12:02
иногда бывает интервьюеры какие-то тузы используют например мира и это не очень приятно что мне прям некомфортно было так делать искали дров в целом хотя я точно не про это думаю да мне не принципиально с какой-то уже ты будешь рисовать мне главное чтобы я понимал просто что нарисовано и Да мои ожидания точно такие же я бы точно также хотел двигаться Вот и перед тем как мы перейдем к непосредственно задачи я хотел еще такое финальное слово сказать что мои ожидания что я занимаю пассивную роль но я могу переходить в активную
00:11:30 - 00:12:49
роль если у тебя будут какие-то проблемы я буду помогать чтобы ты не сидел не тупил грубо говоря Не нервничал Но тут нет какого-то супер правильного ответа мы делаем архитектуру это процесс в процессе в зависимости от количества людей Ну может получиться разные результаты для меня конкретно процесс важнее чем результат здесь Мне важно чтобы мы были просто честными друг с другом говорили обратную связь друг другу и как-то шли по этому процессу что получится то получится Типа время у нас ограничено да мы не можем
00:12:10 - 00:13:23
идти к какому-то идеальному результату и хотел передать привет всем кто писал комментарии под предыдущим интервью со мной мне это очень понравилось вот понравилось что многие называли меня душным аутистом и я сделал выводы и не буду таким суровым душным аутистам на этом интервью Надеюсь моя личность не будет ответить короче возможность тебе раскрыться И показать себя Вот теперь перейдем короче непосредственно к проектированию в Авито там бывает по-разному и в других компаниях по-разному можно разные штуки
00:12:46 - 00:14:09
проектировать мы сегодня конкретно будем проектировать приложение представим что я продакт в каком-то стартапе я нанял первого разработчика у нас вообще ничего нет допустим тебя и говорю тебе Ну давай короче спроектируем текстовый редактор и я хочу чтобы в этом текстовом редакторе у нас главное была возможность какие-то как-то менять этот текст какие-то применять стилизацию к этому тексту чтобы ну можно взять условно Google Документы представим что вот я могу по-разному выделять текст внутри этого документа и я хочу
00:13:30 - 00:15:02
чтобы у нас была коллаборация я продакт я типа не знаю каких-то технических возможностей Я не знаю чем вообще можем сделать Это коллаборацией насколько она будет коллаборативные Да но я бы хотел чтобы она была и не знаю когда получится вот это все мои требования типа и Это вроде Ну да все типа вот я хочу чтобы я мог как-то текст выделять что-то с ним делать и чтобы я видел какую-то коллаборацию все вот Можем начинать Хорошо договорились Так я для начала хочу еще дополнительные требования собрать в любом случае вот
00:14:16 - 00:15:43
Я в целом понял задачу мы делаем какой-то онлайн текстовый редактор Да как какой-нибудь Google Docs сразу первый вопрос Сколько человек может одновременно текст редактировать если ограничение или это там допустим 2 обязательно или еще сколько-то Ну я как product не вижу никаких но никакого там смысла ограничивать кажется что Чем больше тем лучше Пусть все никак не будем ограничивать [музыка] Так значит много людей у нас могут отредактировать соответственно фокусируемся в том числе и на какой-то
00:15:07 - 00:16:25
стилизации текста Какие стилизации вообще нам интересны то есть Может у нас есть ограниченный набор типа сделать болтом металликом там зачеркнутым размер шрифта или Мы прям полный набор какой-то берем и закладываем там вообще понятно что мы заложимся на масштабирование но может у нас есть уже дистиллизации [музыка] Давай я перечислю прям Я хочу делать текст жирным хочу делать курсивом Хочу выделять заголовки хочу менять цвет и размер Вот это все неплохой набор получился так будем ли мы обсуждать какие-то штуки которые там с
00:15:52 - 00:17:26
приватностью связанные Ну в целом как мы будем жарить доступ к одному документу между людьми достаточно ли Просто ссылки какой-то скинуть остальное соответственно уже пока оставим за скобками Я честно скажу я как продакт об этом не думал Я думал о том что у нас будет ссылка и по ссылке все кто открывает Этот документ будут способны там что-то делать но в целом это интересная идея для этой фичи для этого продукта такая фича чтобы мы как-то ограничивали количество людей Давай мы будем ограничивать иметь возможность
00:16:43 - 00:18:01
ограничить доступ либо по ссылке либо конкретному набору людей Окей так Можем ли мы это сделать какой-то не приоритетной штукой Чтобы сильно не упороться в количество там соответственно фич или это все-таки тоже Маст хэв и нужно сразу про это думать я бы сказал что в целом тут все это можно в какой-то степени делать не приоритетным и все одновременно делать приоритетным то есть я бы сказал так что Что мы успеем то мы успеем Вот то есть если мы успеем обсудить шарин классно не успеем судить Это неплохо то же самое со
00:17:25 - 00:18:51
стилями Если мы с каким-то конкретным стилем как-то попадем в тупик почему-то то я тоже не против не задерживаться долго так хорошо я все сценарии понимаю у нас будет соответственно который там по ссылке либо еще как-то Будет поддерживать открытие документов Нужно ли нам обсуждать список документов Или можем просто говорить про то что у нас есть только документы ссылки и мы только с ним и соответственно работаем [музыка] Ну да наверное Нам нужен список наших документов которые заходили и так соответственно список документов
00:18:10 - 00:19:36
про права в идеале вообще не нужно было мне про это говорить так я себе задачу мы можем поговорить потом чуть попозже соответственно есть редактор там у нас есть или какой-то соответственно коллаборативная редактирование потом шаринг документа с сохранения мы пока не будем говорить да про какие-то Ну или я не знаю будем говорить если смысл задумываться насчет допустим оффлайн какого-то редактирования или пока просто только онлайн и все Хороший вопрос но я думаю что мы хотим иметь возможность писать документ
00:19:01 - 00:20:20
в оффлайне понятно что в оффлайне мы никак нас никак не будет коллаборации и наверное задача того что мы хотим после оффлайна как-то это синхронизировать это какая-то сложная там еще один уровень фичи то есть Мы это можем зафиксировать я не знаю куда мы дойдем но понятно что если бы настоящий продукт развивали у нас бы этот вопрос встал хочу ли я сегодня это обсуждать зависит от того как мы будем продвигаться Окей хорошо Так ну я написал на самом деле про конфликт resolution здесь если время останется Можем потом обсудить по
00:19:45 - 00:21:11
требованиям я плюс-минус все понимаю про наверное масштабы Еще хотелось бы спросить ты вот сказал такую пугающую штуку про то что я один разработчик мы Я просто привык к такому что нужно сразу дизайнить какие-то прям масштабируемые системы соответственно под большой этом количество разработчиков потенциально допустим вот там большой аудиторию мы соответственно в таком же ключе Работаем или у нас просто mvp сделать можно побыстрее работала задача моя задача то есть мне хочется иметь готовый продукт который будет работать и
00:20:28 - 00:21:49
тут конкретно не стоит задача чтобы этот продукт был сразу написан десятки разработчиков Вот но опять же Если ты будешь проектировать это будет скорее всего плюсом но не будет минусом Хорошо тогда мне проще так делать Просто Окей хорошо договорились Так и последний вопрос наверное по требованиям так как я плюс-минус сценарий понимаю какие-то там посине и так далее тоже вроде бы ясны она еще Кстати на вопрос про Flight support насколько понимаю у нас в целом там доступ изначально предполагалось только посылки нам нет смысла
00:21:12 - 00:22:27
заморачиваться Насчет какой-то приватности чтобы шифровать документы которые где-то на диске лежат можем тоже пока про не говорить или все-таки стоит я думаю можно не говорить так А да я в принципе ну как бы вроде бы надеюсь По крайней мере Что понял что хотел хотел бы последний вот вопрос задать но ты уже кажется на него сам частично ответил про компоненты которые дизайн не будем Я предложил сфокусироваться действительно на могилке можно обсудить и в целом конечно Ну да не хотелось бы говорить так как ты мне
00:21:50 - 00:22:50
не очень большой вряд ли что-то действительно такое важное могу рассказать Вот она пишет время останется можем без проблем судить Окей давай посмотрим если у нас То есть я в этой схеме мне будет ок да если вообще там не будет бэкенда если у нас будут какие-то вопросы возможно будут такие вопросы если мы будем обсуждать уже эту схему детально но опять же если у нас не будет ответа или если этот вопрос будет достаточно будет сформулированного вопроса типа допустим нам нужно спроектировать Back and а нам нужно
00:22:31 - 00:23:43
пойти к команде backender of и сказать вот смотрите нам нужно вот это вот это сделайте нам То есть это вот будет наверное достаточно то есть понятно что мы не можем рассказать как сделать мы можем попросить их и наверное умение сформулировать чтобы нам вообще нам нужно получается к нашему приложению это было бы прикольно Окей Ну я думаю это получится сделать тогда собственно я бы хотел дизайну перейти Вот как я уже до этого говорил я бы для начала Надеюсь не слишком Давай тогда сразу восстановимся обсудим эту секцию Да без
00:23:09 - 00:24:24
проблем вот я тогда сразу хочу выделить чтобы всем было прозрачно что я вижу это интервью по факту как вот похоже описано в документе который мы вдвоем с Андреем смотрели что сбор требований это отдельный этап Поэтому после сбора требований и того как он прошел можно уже сделать какие-то выводы можно для себя как для интервьюра что-то отметить чтобы в будущем как-то помочь кандидату на примереть Он про что-то не спросил Вот и давайте я свой сухой фидбэк дам чем мне понравилось что мне не понравилось ой А
00:23:47 - 00:25:17
можно мне показать Этот документ потому что Да вот мне понравилось то что вообще в целом при знакомстве с кандидатов я его поспрашивал и мне понравилось что у него во-первых есть опыт использования этой тузы и значит он как-то готовился что-то рисовал мне понравилось то что он каким-то образом нашел этот документ значит он что-то искал Гугле это хорошо потому что подготовка Это половина задачи смотрел какие-то видео для меня это сразу плюс Что это Это хорошо Я уважаю Потому что есть кандидат приходит
00:24:31 - 00:25:43
и вообще ничего не знает про систему дизайн ничего не рисовал это странно потому что получается Если у него будет какая-то Задача В жизни он не будет к ней готовиться он будет просто приходить и такой Ну я короче что что-то сейчас буду делать не могу никак гарантировать результат но что-то сделаю вот тут видно что кандидат думал это мне нравится конкретно в моей команде об таком кандидата хотел видеть я специально вел себя Ну по-разному себя интервьюеры могут вести я типа вел себя как продакт например человек который
00:25:08 - 00:26:18
что-то придумал и часто бывает в жизни так что он сам до конца не знает что он хочет У него есть какая-то концепция продукта и какие-то фичи какие-то технические штуки могут быть неочевидны понятно там супер топ продак Ты супер компаниях это одно но в целом я чаще встречаю ту историю когда тебе приходит задача и оказывается что есть куча всяких вопросов которые надо задать перед тем как начинать эту задачу делать потому что может в разработке оказаться Что правда то есть какой-то волшебное желание которое нормально вслух не
00:25:42 - 00:26:50
озвучил поэтому мне понравилось то что Андрей расспрашивал про всякие фичи про которые я не говорил если бы он про них не спрашивал то в целом я бы не обиделся потому что я про них не говорил ничего но то что он про них спросил это было классно типа это для меня тоже подсвечивает то что ну либо Андрей хорошо готовился либо у него уже был такой опыт когда он что-то делает оказывается делать что-то не то потому что ему непрозрачно сказали Вот что мне не понравилось мне не понравилось то что мы не пипл который ты
00:26:16 - 00:27:33
спросил ты внес фанкшинал потому что для меня коллаборация это и про functional и про Нон потому что nonfan это с одной стороны про какую-то нагрузку с другой стороны когда у тебя много людей ты видишь это в ЮА и очевидно это функционал Да там какие-то каретки там если мы говорим как она Google Dogs какие-то могут быть каретки какой-то цвет там и редактирует Енот и Ну типа очевидно что это какой-то функционал и поэтому я бы наверное внес или туда и туда это не критично для меня это типа момент того что типа интересно почему
00:26:54 - 00:28:18
кандидат внес в нон-фанкшину либо он Никак это не собирается отражать нигде либо он не до конца там понимает что такое фант Что такое nonfunctional и типа это такой заметка на полях в течение интервью потом проверить грубо говоря что как мы в итоге с этим Many People поработали Да мы поработали с этим так и я бы в конце спросил Например если бы не забыл типа Почему ты внес это Может начать спросил там уже по настроению Вот то есть в целом могу сказать что мне там понравилось то как мы обсудили понятно что можно было больше задать
00:27:35 - 00:29:04
вопросов но если честно зависит от задачи и конкретно вот в этом приложении и конкретно в том вот этих дефолтных вопросах по шаблону сколько у нас пользователи приложения Я просто явно проговорил что вот у нас новое приложение У нас еще нет пользователей мы не знаем сколько у нас их и вот это все Поэтому я считаю что Мне все понравилось Окей отлично но я в принципе согласен с фидбэком Потом наверное расскажу в конце если забудешь спросить почему я в not Funk что унес Так ну что можно тогда получается к дизайну собственно
00:28:25 - 00:29:47
переходить да меня слышно Да я пока я не знаю останется ли у нас время на то чтобы обсудить и так далее но я на всякий случай внизу здесь такие заметки которые будут отделять собственно не здесь будет Вот они будут отличаться и соответственно фронтовые Я имею ввиду мобилку И еще такая же которая дальше уже будет бег так а пока Back я на всякий случай как бы представляю что он уже нужен примерно Зачем обозначу одним такими компонентом потом дальше уже можем его разделить на что-то Если нужно будет может там какой-нибудь
00:29:09 - 00:30:44
пуши появятся или не знаю сидень и так далее пока в целом Я думаю этого будет достаточно сейчас хотелось бы определиться с какими-то основными компонентами которые будут соответственно нас могилки так Да я наверное Для верхнего уровня дизайна я разделю пока и не буду расписывать соответственно разные Flow так про них можно в отдельности поговорить но самое интересное все-таки редактирование документов Вот Но тем не менее список документов Просмотр там открытие может какие-то действия с ними это само
00:30:16 - 00:31:20
по себе Flow и там может быть несколько компонентов собственно несколько компонентов какие-то не детализированной части я под слово подразумеваю здесь соответственно будет Эдита к слову вот дальше они будут в любом случае использовать там компонент который сеть ходят к нашему вот этому бренду я его обзову Network Point вот дальше какие еще мне все-таки нравится на схеме отображать кто-то говорит что стоит кто-то говорит что не стоит не нравится отображать Di для того чтобы лишний раз светить что у нас всё-таки
00:30:51 - 00:32:02
здесь всё как раз масштабируемые и так далее Di помогает в этом Ну и в целом помогает там подписать Тестируем и так далее легче системой работать в этом плане Вот Потом тоже возможно я не знаю спорный спорный момент я бы сразу добавил навигацию между соответственно вот этими слова навигацию добавляют для того чтобы показать что у нас фичи в идеале друг друга не знают и соответственно они могут Ну там вот как бы наш навигация фреймворк навигация которую мы используем он где-то там капсулирован за
00:31:26 - 00:32:38
какой-то сущностью и нам дополнительно это еще поможет Ну во-первых да это чтобы проект у нас там хорошо собирался связанность была меньше и дополнительно Это поможет в случае чего переехать на другой навигации так как оно будет все там условно в одном каком-то компоненте Ну или нескольких компонентах заложено Так что еще у нас здесь соответственно есть оффлайн Саппорт Это значит что нам нужен какой-то сторож пока мы не говорим что это будет Ну или файлы или что-то ещё но тем не менее он здесь есть
00:32:03 - 00:33:13
так как у нас появляется несколько источников данных Я бы ввел дополнительно сюда репозиторий Это такая абстракция которая соответственно позволяет открыть вот эту сложность похода в разные источники за данными вот э-э репозитории их может несколько на самом деле то есть для допустим списка документов и для там редактирования документов или еще там для чего-то может быть миллион репозиторий можно это можно можно этого так обозначить Что это какой-то там репозиторий но тем не менее соответственно и редактор к нему
00:32:38 - 00:33:48
обращается и соответственно список документов Так что еще у нас есть соответственно Style но я думаю это уже больше к Editor Flow есть шаринг Я думаю это тоже к нему про авторизацию пока не говорим про шифрование тоже Так что еще здесь принципе там изображение какие-то Да кстати я еще забыл Уточнить про Ну ты уже сам про это сказал я думаю это стоило мне Уточнить про отображение Хотя в любом случае так [музыка] Ну наверное наверное это все в плане верхнего уровня схемы я могу нарисовать связи между компонентами
00:33:13 - 00:34:56
но я не уверен насколько они нужны Если нужны можем соответственно их обозначить Если нет то не обозначать Вот и можно соответственно также обозначить наши ручки ну смысле здесь как бы будет суперсистентная Ну в этом про это наверное мы говорим потом когда будем говорить про редактор в целом здесь кажется есть место и какому-то ручки с постоянным соединением которое соответственно будет слушать обновление эти обновления отправлять и какие-то обычные ручки которые получают список документов Может быть там шарин какой-то
00:34:12 - 00:35:20
предоставляет и так далее Я на ПК все-таки предложил бы их не записывать потому что они тоже зависят от слова и Непонятно какое слово мы будем детально разбирать в целом очень верхние уровня Это примерно как-то так выглядит Я бы хотел еще тут видеть наверное какие-то модели данных [музыка] не погружаться в детали того как у нас там что с кем связано и какие методы у кого мы вызываем но хотя бы понимать как мы это как эти данные мы все примерно представляем потому что типа теоретически это можно обсудить и на
00:34:47 - 00:36:15
следующем этапе Когда мы будем какие-то детали обсуждать вот если это и так планируешь то на самом деле верхнеуровневая схема и какое-то Погружение в деталях и там чуть больше рисования это синтетическое разделение она просто Создано для того чтобы кандидату было проще по кусочкам эту схему создавать Да и зависит от кандидата он может начать и по кусочкам по-другому создавать и по факту у него не будет такого разделения тут Давай тогда представим что допустим это все мы верхний уровень его как-то
00:35:41 - 00:37:07
обсудили схему я точно также дам фидбэком и типа просто дальше пойдем вот что я хочу тут сказать по верхней уровневой схеме я вижу что ты выделил типичные компоненты которые часто присутствуют Это хорошо Ну типа тут смотри зависит кандидата это могло быть хорошо могло быть не как могло быть плохо то что ты пытался аргументировать Зачем этот компонент Нам нужен это хорошо то что ты пытался аргументировать у тебя вроде Получилось Да это тоже хорошо часто кандидаты могут говорить что ну репозиторий Нам нужен тоже репозиторий
00:36:25 - 00:38:04
такой паттерн и типа ну и классно вот конкретно в этой задаче действительно репозиторий скорее всего пригодится без деталей мы пока не понимаем пригодится он или нет но скорее всего Пригодится в этом главная ошибка верхнеуровневой системы что Если ты создаешь что-то потом оказывается что она не нужно то это сигнал того что что-то пошло не так это просто все усложнить усложнить тебе что-то удалять усложнит меня потому что я буду думать блин А почему все удаляем вот конкретно тут кажется что все вроде
00:37:15 - 00:38:36
правильно ты по каждому компоненту объяснил что и как будет использоваться наверное мне но это то что нравится Наверное мне не нравится сам подход когда Ну типа есть два способа как сделать верхний уровень и схему первый подход это есть общепринятые практики есть общепринятые подходы и опыт разработчика и он знает и в принципе знаешь типа надо сделать если ты писал Android приложение и ты можешь эти кубики для любого абстрактного приложения создать они будут примерно одинаковые да и это первый подход и он не чуть
00:37:56 - 00:39:20
меньше нравится второй это типа больше про плюс Мне нравится когда человек создает эти квадратики пытаясь представить что окей вот у меня сидит РФ Лол и вот пользователь что-то начинает вбивать и вот видимо вот мне нужно взять этот там введенный текст куда-то там что-то с ним сделать и типа Окей вот я просто пойду отправлю его там сторож в сеть Окей сделать вот это я буду понимать что ты размышляешь не просто от общей принятых практика ты пытаешься в голове представить то что будет делать пользователей то что в коде нам примерно
00:38:43 - 00:40:01
будет сделать да и у тебя получится а потом я открою и мне нужно будет прочитать А если кто-то другой редактировал и типа Ага значит мы будем Вот так читать и типа идеально репозиторий нам подходит вот так сказал это было бы просто вдвойне то что ты сейчас проявил себя как опытный разраб который Ага я там знаю что используется репу историю Вот это хорошо на меня бы больше впечатление произвело если бы мы шли от сценариев пытались проговаривать чем пользователь будет делать из того что ты нас спрашивал а то есть получается так ты
00:39:22 - 00:40:36
нас спрашивал в голове все это у себя переварил родил схему но не было как будто бы чуть было в самом начале что у нас будет этот слово этот Flow и потом как бы все что мы спрашивали она как бы не нужно было Да есть вот так закрыли либо вот у нас приложение так и делается У нас есть один фрагмент другой нас есть репозиторий всегда обычные вот эти штуки вот поэтому Пока все хорошо но на меня бы больше впечатление произвело вот эта штука Окей могу ремарку дать что я собирался раскрыть это Ну и как модели Ну хотя тут
00:39:59 - 00:41:13
тоже интервью зависит иногда не требуется как раз в деталях потому что ну как мне кажется за довольно короткий промежуток времени тяжело и то этого слова раскрыть Потому что если говорить про там список документов там про пагинацию довольно можно долго разговаривать там тоже Скорее всего какой-то нужен потому что мы не можем просто приложение открыть допустим 10 и какой-то любой документ Рандомный открывать нам нужно видеть тоже список документов так далее вот как там вагинация будет работать ну и вот это
00:40:36 - 00:41:36
вот и сам флоу там редактирование он ещё сложнее там еще больше говорить вот поэтому я не хотел перегружать просто но в целом замечание Давай погнали дальше так в итоге мы будем соответственно говорить детально и про редактирование и про список документов или начнет с чего-то более приоритетного есть чего-то более интересного или только про что-то одно будем говорить непонятно сколько что времени займет вот в моей голове Я просто вижу нас допустим есть 20-30 минут И ты этим временем можешь распоряжаться
00:41:05 - 00:42:23
Как хочешь Если ты чувствуешь что там Найди то уйдет там около 30 минут то оставим там то на десерт если ты понимаешь что ты в целом уложишься в это и в это то можешь начать с более простого На мой взгляд это типа список документов Вот Но тут опять же делай как чувствуешь на самом деле я не уверен что успел ложиться но попробовать хочется поэтому давай начнем тогда списка документов вот собственно Ну как бы документов сказал действительно отвечал попроще поэтому глобально там не будет каких-то прям
00:41:49 - 00:43:11
супер сложных сценариев И если мы будем говорить про нее так Или я наверное сделаю [музыка] лучше копию отдельно вот для того чтобы схема лежала чтобы можно было соответственно потом к ней вернуться но в целом замечание про то что это условно разделение между верхней схемы и детальной это такие были вот так поговорим про соответственно документов список документов как я уже сказал там довольно типичная фича которая соответственно показывает какой-то список документов которые у нас есть для этого
00:42:32 - 00:43:52
будет ну Каким образом эти документы получают шаринг права доступа и так далее Это скорее вопрос бэкенду Можем потом говорить про поговорить про ручку глобально у нас соответственно будет репозиторий который будет список документов получать пока мы говорим только про онлайн потом поговорим еще про там доступ Вот и соответственно он там к Network line будет обращаться уже и этот список документов запрашивает Вот так я Мне очень нравится подход чисто архитектуры там есть отдельно область слой логики бизнес логики и там есть такой
00:43:12 - 00:44:33
пастерны как он соответственно консулирует себе только бизнес логику почему считаю что это хорошо и хотел бы привести схему потому что это легко масштабируется можно соответственно использовать добавлять новые это очень легко тестируется потому что там только бизнес логика там нет никаких там специфик штук и так далее это легко расширяются в силу того что сразу понятно что это делает и опять же можно переиспользовать вот поэтому я бы здесь сделать также и добавил бы который соответственно запрашивает документы это будет что-то
00:43:53 - 00:45:03
Типа такого он соответственно будет обращаться к нашему репозиторию вот дальше как я уже сказал он там зависимости уже от режима либо сеть либо соответственно какой-то сторож Так где они пока оставим здесь как роутер в целом не так интересно также у нас будет также у нас будет соответственно уже какая-то там часть либо presentation Вот соответственно будет докинуть лифт кажется что не самая сложная часть мы там можем проводить различные [музыка] поэтому я бы пока ее не раскрывал если соответственно нужно то есть но если
00:44:28 - 00:46:03
захотим поговорить пройти по mxron то можем поговорить детальнее я пока его так опишу вот она соответственно будет обращаться к нашему из кейсу что еще у нас никаких превьюшек Насколько помню здесь нет Если смысл говорить про вагинацию Я не уверен я Потому что я не спросил И это моя ошибка Вот наверное потому что уже более детальная такая штука будем разговаривать про пагинацию сможете У нас документов быть очень много вообще расскажу наверное прогибацию почему она нужна э-э это опять же трейдов но это такая хорошая
00:45:16 - 00:46:40
штука с точки зрения икса Потому что если например предложение будет загружать весь список файлов которые У пользователя есть это может быть во-первых не оптимально лишний трафик расходуется во-вторых по времени это будет занимать долго Ну и в целом через 4 бесполезно потому что пользователь может допустим быть сортировку хотеть или там какие-то последние документы открывать и так далее Вот Но обычно С точки зрения ресурсов скорее экономия Ну и времени тоже поэтому пагинация это как бы хороший механизм который позволяет
00:45:59 - 00:46:55
проблему решить здесь мы будем про нее разговаривать или пока тоже как бы за скобками оставим Давай обсудим так пагинация она глобально не так сильно наверное влияет на наш дизайн здесь появится ну как бы я бы добавил здесь дополнительную прослойку в виде компонентов агинатор который соответственно хранит сейчас скажу он уже соответственно идет он уже соответственно идет либо в сторону черепа в сеть мы потом тоже про это поговорим просторыш присеть да наверное хотелось бы проговорить про виды пагинации потому что пагинации
00:46:27 - 00:47:49
бывает много разных там есть курсорные есть какие-то по ключам еще какие-то есть постраничные по моему Вот но в целом самое удобное тем более в таком как бы приложении как у нас таком продукте Когда у нас штуки но сущность наши они нестабильные потому что в теории наверное документы могут удаляться они могут там как-то тусоваться меняться и так далее и здесь хорошо подходит нация когда соответственно мобилка просто передает ID сущности которую там пользователь видит последние Ну или не видит если допустим и
00:47:17 - 00:48:32
соответственно возвращает все сущности которые после не идут зависимости от порядка сортировки которые у него есть и так далее вот ну и соответственно Здесь также штука которая просто с веровать себе в соответствии с принципом эсерпии будет консультировать эту логику переключения страничек то есть соответственно нашему просто будет говорить Ну и будет говорить и модели или презентору или кому-то там еще про то что вот у меня такой-то элемент показался последний элемент показался дальше соответственно слой будет идти в
00:47:54 - 00:49:03
domain говорить что дай мне следующую пачку данных домен будет идти в репозитории репозиторий будет идти в координатор и тот уже либо все либо соответственно в сторону только нация есть это может казаться Как там в избыточный набор сущности но опять же Это в соответствии позволяет Зато в репозитории не как бы добавлять логику работы со всеми этими страницами на секунду стало плохо На каком моменте ты но по времени примерно 30 секунд назад Ты просто очень много говорила я не могу прямо Конкретно сказать Окей
00:48:29 - 00:49:47
попробую тогда с этого момента повторить я рассказывал Почему я вообще по генатор добавил на схему потому что на мой взгляд вот в соответствии с srp Это позволяет не вмешивать логику работы со страницами в репозитории Сначала мы туда логику работы страницами добавляем потом еще какую-то логику и так далее В итоге у нас по истории довольно жирный получается Здесь отдельная сущность которая будет хранить соответственно ID последней страницы и запрашивать его когда там UI скажут вот я скролил последнего там соответственно документа
00:49:12 - 00:50:14
Загрузи мне следующий Ну и вот через цепочку вот эту соответственно либо сеть либо storage это все пойдет вот дальше наверное важный момент это собственно сеть storage тоже про них можем поговорить но можем не углубляться и перейти к редактированию потому что я бо Если будем углубляться то можем не успеть тем более все равно что нам в редактировании на придется говорить и просить просторы что там же немного в другом разрезе хотел бы у тебя спросить что что ты считаешь более важным Ну или как бы чтобы ты хотел услышать в итоге
00:49:43 - 00:50:59
погнали про редактирование так [музыка] не самый логичный шаг сделанный действительно схема но чтобы не путаться мне будет так проще так даже Вот это так это я удалю это самое интересная часть Я здесь сразу сходу могу назвать концерны какие-то проблемы потенциальные которые могут всплыть во-первых это стилизация потому что здесь стоит обсудить Какой формат мы будем использовать для этой стилизации и так далее это соответственно конфликт resolution который мы пока за скобками оставили потому что нужно понимать как
00:50:22 - 00:51:46
будем эти все конфликты накатывать друг на друга когда пользователь там очень долго например что-то в онлайне редактировал потом у него появился интернет а там уже другой пользователь что-то тоже редактировал вот это соответственно там какое-то сложное отображение от самого компонента и обновление тоже Я насколько понимаю тайме должно приходить поэтому здесь какие-то Наверное нужно будет обсудить чтобы у нас не весь текст сразу обновлялся Ну либо могилка допустим это будет вычислять вот ну и собственно
00:51:34 - 00:52:32
Можно наверное тоже приступать к этому всему Так у нас здесь место шрифт будет соответственно editer.ua уже будут другие роутеры Снова опять же можем показывать скобками оставят так как в разрезе Вот именно этого Flow так здесь нет нескольких Flow и взаимодействий между ними мы можем пока про это не говорить так и соответственно Я бы ввел отдельный докименты позиции который будет работать уже сущностями конкретных документов вот потом можем еще тоже поговорить про модель собственно документы самого Вот
00:52:04 - 00:53:15
Но тем не менее собственно какие у нас здесь будут сами сценарии Какие Вот именно из кейсы какие операции мы будем поддерживать Это редактирование причем здесь очень хороший вопрос как мы будем Когда мы будем понимать что там условно редактирование закончила закончилось какими пачками будем отправлять это все обновление [музыка] так Ну да я пока наверное на схему это добавлю А потом уже про это поговорим [музыка] соответственно здесь должен быть какой-то Ну опять же вот какое-то соединение постоянное которое слушает
00:52:44 - 00:54:00
все эти изменения и соответственно они говорит поэтому ой поэтому появляется [музыка] соответственно штука которая [музыка] назову пока как-то по-простому или вот где так кейса эта штука которая будет соответственно подключаться там через сети и следить за обновлениями текста когда кто-то другой соответственно может текст редактировать вот что еще что еще есть соответственно стиль еще я думаю это отдельный бизнес сценарий Потому что это не совсем про редактирование поэтому как-то так вот эта штука сюда вставилось
00:53:22 - 00:54:52
понятно Ну плюс-минус наверное такой набор Что еще можно подумать про соответственно редактирование так Я сейчас вернусь на секунду к требованиям которые у нас были так ставим учили шеринг шерринг тоже можно поговорить Это может быть либо на Flow соответственно списка документов либо на Flow редактирования Мне кажется это не так важно И в целом Я бы пока оставил его тоже за скобками потом есть интересно можно тоже про него поговорить так собственно собственно Можно наверное вот так немножко подвинуть дальше можем поговорить как
00:54:23 - 00:55:39
раз таки про вот эти сценарии поподробнее потому что здесь очень интересно Мне кажется будет поговорить про то как опять же документы будут обновляться как мы будем получать эти обновления как мы их отправлять будем и как собственно будем работать со стилями кажется что из этого самое важное все-таки это редактирование текста и получения обновления после этого уже можем поговорить про стилизацию если говорить про соответственно редактирование текста то как я уже сказал нам нужно понимать когда мы будем отправлять изменения то
00:55:05 - 00:56:21
есть в том что мы можем допустим очень быстро печатать что-то и по одной букве отправлять изменения это ну очень затратно будет с точки зрения ресурсов как наших потому что мы будем постоянно данные отправлять так Наде потому что нужно будет каждую обрабатывать в отдельности так и соответственно на стороне других пользователей которые в этот момент этот текстом редактирует или смотрят Вот поэтому я предложил какой-нибудь не уверен что здесь подойдет Но что-нибудь типа дебалтика допустим добавить то есть у нас есть
00:55:43 - 00:56:45
например какой-то лимит обновления допустим раз в 10 секунд либо 20 либо еще что-то для этого можно соответственно завести Там отдельный конфиг Вот то есть какой-то ремонт конфликт будет через который мы можем соответственно вот эту штуку значение менять Можно даже эксперименты допустим на основании проводить какое лучше работает но в остальном у нас вплоть вот до этого у нас будет какой-то дибаунтинг когда пользователь например печатает какое-то там большое длинное слово оно не сразу будет отправляться
00:56:15 - 00:57:21
а оно будет отправляться Вот в тот момент когда он либо Прекратил печатать либо вот этот лимит вышел то есть там 10-20 секунд либо что-то такое либо можно допустим поговорить про какие-то пачки там по 10 символов либо что-то еще вот отправку ну здесь мне кажется тоже такой до трейдов опять же вот но в любом случае это что-то инте ментальное должно быть соответственно соответственно Ну почему здесь в целом перстентная там постоянное соединение потому что обычно http запросы Я сказал на самом деле но не
00:56:48 - 00:57:54
объяснил там Почему Я уже про него говорю мы его отдельно Не обсуждали а-а Это потому что на каких-то запросах это будет очень сложно сделать мы там скорее всего положим Наш наши сервисы очень много вытащить и запросов слишком часто они будут отправляться Потому что постоянно данные меняются и так далее плюс здесь какое-то поле придётся тоже использовать чтобы изменения видеть и здесь в любом случае какое-то президент наверное должно быть соединение здесь может быть несколько тоже видов например
00:57:21 - 00:58:20
однонаправленный поэтому кажется здесь должен быть сам себе высокий Мы кстати можем здесь это обозначить То есть у нас будет ручка которая соответственно IDE Edit Вот она соответственно будет она соответственно будет там уже ну как бы все данные возвращать и принимать какие-то изменения вот так про редактирование поговорили здесь наверно схеме это стоить обозначить как моделькой моделью То есть это будет что-то типа апдейт для модели можно сделать какой-то отдельный цвет такой то есть это что-то будет типа текста
00:57:52 - 00:59:11
соответственно текст он у нас будет Допустим какой-то контент возвращать и он должен возвращать а давать информацию о том что это за плит куда он там произошел То есть это вставка текста либо там пользовались что-то много напечатал то такая позиция должна быть Вот соответственно текст апдейт он в нашей репозитории будет пуляться через Вот этот текст так сделаем так и здесь собственно покажу дальше можем поговорить про собственно получение данных вот [музыка] там я предложил такие же апдейты сделать
00:58:42 - 01:00:10
они уходят и в итоге приходят для нас тоже такие здесь у нас соответственно Вот этот текст он будет в наш какой-то получается в целом в целом про паттернабжёров обзор вот он соответственно будет его отправлять на UI уже каким-то образом будет соответственно показывать именно эти апдейты так чтобы не весь интерфейс перерисовывать здесь соответственно также из репозитория получает вот эти апдейты вот через такой же собственно обзор был ну и передает их на ее часть здесь скорее всего модельки будут
00:59:31 - 01:00:52
отличаться потому что набор входящих исходящих параметров но я для простоты использую тот же текст апдейт Хотя опять же по факту скорее всего отдельная моделька будет Вот так здесь кстати тоже тестирование можем поговорить про стилизацию соответственно так и еще эти тексты Я уже сказал он не очень красиво к конфигу тянуть но можно хочу Показать на схеме потому что я про это поговорил но на схеме никак не отобразил что у нас соответственно конфиг он может хранить какие-то данные допустим про там не знаю
01:00:17 - 01:01:53
где баланс там тайм что-нибудь такое Вот либо какие-то еще дополнительные данные так поговорим про стилизацию текста здесь Наверное стоит поговорить про формат потому что нам либо придется какой-то свой формат изобретать для того чтобы там как минимум офлайн это хранить ну и соответственно получать каким-то образом парсить либо можно выбрать какой-то из окон форматов мне лично нравится как какое-то такое более-менее простое в то же время масштабирование решение там есть какие-то дополнительные расширения которые поддерживают какие-то
01:01:04 - 01:02:19
дополнительные стили даже если проток потом придет скажет что я хочу зачеркнутый там текст которого в официальном органе Нет стандартах не проблема можно как-то договориться как его обозначать вот глобально текст просто будет приходить в формате markdown соответственно и мы его также будем локально в формате моргауна хранить есть там множество библиотек на Android на iOS которые смогут вам нормально показывать и соответственно с редактированием все будет то же самое ну и в целом как бы здесь Наверное
01:01:50 - 01:03:01
проблем нет кроме того что у нас здесь в текст апдейт и кстати Может быть я зря их разделил ставил текст из текстов может быть не зря потому что здесь у нас будет как я уже сказал у нас соответственно моделька Я использовал Хотя по факту Это плохое решение было потому что мы например когда редактируем текст и редактируем стиль мы используем в моем решении используем разные кейсы но приходить нам будет Будут данные из измененными стилями могут прийти с измененным текстом вот поэтому Можем пока поговорить что здесь какое-то
01:02:25 - 01:03:36
допустим вот и пока эту модельку наверное не говорить А здесь можем встретить отдельную модельку которая будет менять именно стиль документа Вот это соответственно будет условно И что здесь будет здесь соответственно будет Мы можем представить насколько я помню как мы тогда он работает и так далее и вот это вот все можем соответственно использовать что-то из перечисления там ставил допустим Не знаю болт ну или там что-то еще не знаю и position старт position и соответственно вот вообще Вот это соответственно штука которая
01:03:03 - 01:04:44
будет приходить от пользователя когда он допустим выделил какой-то текст участок слово предложение не знаю еще что-то и вы просто его нужно болтом сделать и соответственно вот этот вот ставил текст есть уходит команда дальше соответственно он через отправляет репозитории репозитории у нас это все отправляют в сеть и дальше соответственно дальше соответственно остальные участники которые находятся там в редактирование этого документа они получат обновление через соответственно тоже его как-то покажут Вот
01:04:05 - 01:05:24
Так э-э ну плюс-минус верхнего уровня я про это поговорил дальше Наверное я бы хотел поговорить про storage если у нас есть время в целом то есть право какой-то фланге редактирование так как основные моменты с редактированием кажется я закрыл и хочется вот тоже по важности в требованиях было поговорить про Fine редактирование Как думаешь это не у нас время есть но я бы на самом деле лучше тут обсудил меня есть вопросы [аплодисменты] так кажется да кажется нам стоит затронуть ЮА Потому что сейчас ну грубо говоря если убрать
01:04:44 - 01:06:14
то ничего не изменится в нашей схеме потому что для нас сейчас такой черный ящик и мы в конечном итоге не понимаем как на какие-то события этот я буду реагировать и учитывая то что мы все-таки проектируем штуку которая есть какой-то ЮА и то как это будет на ЮА и важно обсудить потому что может оказаться что нам то событие такое прилетает там это не знаем вообще как его нарисовать и у нас как бы плюс то что мы можем не углубляться в сложный бэкенд этой фигни но надо как-то обсудить его вот и можно
01:05:48 - 01:06:59
обсудить Ну короче да просто хочется обсудить его не буду там какие-то пока отдавать комменты если что еще что-нибудь скажу умного Окей хорошо тогда пробивает действительно Здесь такая нетривиальная штука будет Да здесь Наверно все-таки придется поговорить про вот эти паттерны вообще в целом если говорить там про для чего они вообще нужны для того чтобы мы могли отделить именно юань то есть какие-то прям супер платформы специфик штуки от как бы логики представления поэтому для того чтобы как минимум их
01:06:24 - 01:07:46
тестировать чтобы опять же соблюдался и так далее чтобы с этим работать было проще и изменять соответственно приложение Вот это почему они нужны дальше у нас встает выбор между классическим и мне кажется здесь будет сложновато за адаптить Хотя в целом кажется что ну и опять же больше влияет на Вообще является глобальную архитектура вот я все-таки предложил выбрать Ну я выбрал все-таки потому что есть очевидный несколько плюсов в сравнении как минимум Он поддерживает соответственно стоит плюс его форсит
01:07:08 - 01:08:31
Гугл там всяких примеров и так далее прочее на самом деле будет найти там код плюс Google не просто форсит но еще и там инфраструктурно поддерживают в СДК соответственно в модели вот эти есть handle который переживает убийство процессов и так далее там много всяких обвязок полезных Поэтому в этом плане он получше ну и плюс там он чуть менее избыточный Потому что есть соответственно есть соответственно какая-то либо дата либо Flow которые будут [музыка] имплементировать реализовывать но не нужно создавать допустим различные
01:07:51 - 01:09:05
интерфейсы для девушки и так далее В целом еще такой плюс что сама вьюжка она не знает Ну вернее сама объем модели она не знает про своих клиентов знает в любом случае ссылка держится и так далее здесь как бы оно наоборот реверсивно работает вот поэтому я выбрал вен и соответственно схему я добавлю модель это которая будет Да И опять же мы можем потом ее потенциально пробить на какие-то другие модели если допустим у нас будет логика сложная и Возможно даже переиспользуемые там по стилизации можем
01:08:28 - 01:09:36
это вынести в отдельную модель которая будет интегрировать логику работу именно со стилями и вторая модель которая про текст будет отвечать и так далее но чаще всего проще по крайней мере если не нужно сразу то я предложил не делать На мой взгляд преждевременной оптимизации пока ограничиться одной вот здесь соответственно будет какой-то там контроллер Activity фрагмент ю контроллер что-то еще это самом деле не так важно который будет потом еще поговорим по любому правдив это довольно важная такая
01:09:02 - 01:10:10
часть довольно сложная Но пока я просто схему общую Обозначил которая опять же там из проектов проект кочует про то что соответственно наша Activity она наш активи Да соответственно во vime модель просто какими-то командами там бросается То есть это какой-то ну или просто ивент Например про то что допустим change Style и соответственно какие-то данные это будет либо сделать вклад либо что-то еще с набором параметров и дальше единственный метод в модели там публичный который будет это все обрабатывать И после этого
01:09:36 - 01:10:48
соответственно как-то менять состояние Почему именно такой подход а не отдельные методы потому что это проще тестировать плюс сразу видно Какие вообще в целом есть не нужно по всем публичным методом продвигаться можно сразу зайти Вот этот класс посмотреть наследников сразу понятно какие события от ЮА его модели могут приходить вот дальше я бы поговорил про соответственно стоит то есть это композитный стоит это одна модель к Ну либо там тоже допустим классический Когда у нас например в классе стейк есть лендинг допустим там
01:10:12 - 01:11:27
это роль и Контент это очень удобно еще и в том плане что потом можно легко иммигрировать Ну или на любой там декларативный и соответственно фреймворки в Swift либо compose потому что в них можно сразу через там допустим Switch кейс либо ошибку показать либо там контент либо допустим загрузку вот Поэтому собственно как бы подход состоит там он Хорошо подходит Ну и почему в целом как бы этот контент стоит это один класс а не на бортом разных классов допустим там какой-нибудь обзор был для тайтла экрана обзор Для текста там еще
01:10:49 - 01:11:59
для чего-то потому что опять же это проще тестировать проще понимать какой стоит может быть и плюс обновление стоит Не знаю там банально можно логировать допустим Не сразу понятно что происходит какой стоит был и так далее где ну как бы вообще в теории можно отправлять Допустим даже куда-то это ну через hairbase либо через другие там блогеры для того чтобы потом пользова и выяснять по блогам Что происходило какой был стоит тогда чаще всего они большие поэтому не получается так дальше Ну как я уже сказал я бы поговорил про вот
01:11:24 - 01:12:38
собственно показ показ самого текста стилизацию и так далее Потому что здесь интересный момент как это все показывать пачками Ну смысле когда чтобы не перерисовывать Не обновлять весь интерфейс Потому что если мы будем обновлять весь Интерфейс во-первых это будет заметно пользователю он там будет либо мигать либо что-то еще будет происходить плюс соответственно скажется не лучшим образом мы будем тратить лишние ресурсы там Возможно у нас главный поток фризит начнет есть много обновлений будет и так далее Вот в общем
01:12:01 - 01:13:04
это по многим параметрам не хорошо поэтому нам здесь нужно будет вести какую-то сущность типа вот и соответственно этот дифф он будет приходить в нашу интервью и наши интервью он будет он наше интервью он будет соответственно это все показывать и этот дифф это плюс-минус там наверное модель Может ее можно переиспользовать либо соответственно там Создать разные модели для разных слоев моделька апдейт которая вот здесь domaint слой соответственно появляется она что она у нас включает Она включает
01:12:33 - 01:13:51
у нас ну она может быть как про изменение текста так при изменении стиля А так и произнений и тексты стиля одновременно поэтому и вообще Возможно даже имеет смысл сделать не одно изменение А может быть хотя нет набор Наверное это будет я подумал Про допустим список какой-то либо сет допустим этих изменений Мне кажется это будет избыточно Почему Потому что вряд ли пользователи про мульти курсорами не говорили вряд ли пользователи одновременно Хотя опять же если у нас несколько пользователей в целом получается может быть и так да
01:13:16 - 01:14:25
Окей здесь получается не апдейт апдейт Я немножечко шаг назад сделаю пойти Почему я медным рассуждения к этому пришел потому что у нас например могут три или там больше человек Допустим редактировать документ одновременно и пользователь может получить обновление одновременно от двух других запросы Ну вот эти изменения он соответственно нам пришлет не два отдельных изменения от пользователя пользователя там в когда мы пользуемся он сразу пришлет одновременно и мы соответственно должны сразу их одновременно показать и здесь у нас div
01:13:50 - 01:15:03
он будет включать соответственно апдейтов и так далее ну либо сам по себе будет которых соответственно [музыка] дальше что такое гифы гифы это Вот как раз изменение стиля либо изменения соответственно текста либо И то и другое То есть мы можем опять же сделать внутри Я бы тебя хотел еще остановить Я даже все время просто прошло 32 минуты Как мы начали верхний уровень детали вот все реализовывать вот хотите по приблизить это да к реальному интервью поскольку во времени Вот и Обычно я как интервьюер после того как у
01:14:28 - 01:16:09
нас получается какая-то схема задаю какой-нибудь вопрос конкретный по этой схеме и интересно послушать как кандидат вообще думал ли он об этом как-то не думал И что в итоге он сможет предложить по решению этой проблемы это покажет насколько действительно кандидат в голове представлял либо это была какая-то верхнеуровневая схема которая что-то не учитывало Да и в итоге могли бы как-то по-другому если пойти Возможно это бы нам попало и мы как раз сможем обсудить могли ли не могли Так у нас есть возможность с тобой пообщаться Вот
01:15:22 - 01:16:49
смотри такой вопрос если у нас вот есть гифы которые прилетают к нам в юань мне твоя твое видео закрывает может чуть-чуть выше поднять эту часть схемы чтобы я наоборот ниже надо смотреть У нас есть получается две составляющая это то что нам прилетело и то что у нас есть на самом деле и допустим может быть такая ситуация когда я удалил какой-то текст в Editor мне прилетает div и div говорит что я Вставляю такой-то текст с символа 150 а я у себя что-то удалил и у меня сейчас нет символа 150 У меня сейчас 50
01:16:08 - 01:18:02
символов всего вот и что мы как как бы ты ситуацию Чтобы ты вставлял куда Да но это вопрос опять как раз про конфликт resolution в идеале конечно логика по конфликт resolution должна быть на бэке но в наших реалиях немножко по-другому работает и здесь действительно нужно нам отделки делать ты интересный вопрос задал Я думал вопрос будет попроще про Ну когда вообще в целом продив и думал про то что условно у нас может быть например две одновременно Ну два одновременно обновления одного пользователя другого я
01:17:08 - 01:18:20
бы там легко выкрутился сказав что там может быть какой-то таймс Темп Да допустим и мы можем соответственно просто накатывать ну то есть там такие подходы по моему финтехи когда они вот эти транзакции все по очереди накатывают и у нас нет какого-то одного состояния есть просто вот очень транзакции так И здесь тоже но что делать конкретно когда у нас допустим текст уже удалён а там мы какое-то изменение сделали не знаю Мне кажется это скорее продуктовый вопрос и я бы решил вот так что опять же здесь конфликты наверное стоит
01:17:45 - 01:18:52
рассматривать все например когда допустим два текста вставились в одну и ту же позицию когда текст вставляется в позицию которая не существует когда текст вставляется там не знаю в начало одновременно с чем-то еще когда два одновременно разных стиля Ну и так далее но конкретно твой вопрос мне кажется самым логичным вариантом было бы просто вставлять его В конец вот как-то так не знаю даже принято Вот и так быстро это пошло еще там один вопрос в другую сторону что типа нас есть некий стал Объект который мы посылаем на
01:18:19 - 01:19:33
бэкенд и мы говорим что мы обновляем вот такой Старт position такой nposition на быка приходит этот запрос она бы кэнде уже нет этого получается Старт position Вот И что бы ты хотел наверное в ответ увидеть на клиенте Что ты что-то послал или короче вот как бы ты бы хотел понятно что мы не будем как на бэкенде сделать так чтобы такого не было потому что наверное когда у тебя три пользователя 45 редактирует как-то оно будет да но видимо есть какой-то ответ возможно возможно нет типа как это можно было на
01:18:59 - 01:20:22
клиенте потом обработать Мы применили вроде к тексту кто-то его получается удалил и типа чем мы финале бы увидели типа у нас есть несколько вариантов что вообще можно увидеть можем все обсудить вообще может получиться у нас Ну да на самом деле действительно хорошо варианты обсуждаем и Потом выбираем какой-то один наверное на основании каких-то критериев здесь Какой вариант может быть может быть вариант такой что соответственно сам 1 2 приходит что пользователь просто получит апдейт с тем что текст удален
01:19:41 - 01:20:55
уже То есть он допустим поменял какой-то стиль и ему тут же приходит опять что текст изменился и он просто как бы перестанет видеть Вот текст который он там стиль допустим менял Какой еще может быть вариант мы можем допустим при изменении стиля наоборот обратно отправить там остальным пользователям про то что текст вернулся и соответственно там какой-то стиль мы применить это с одной стороны будет немножко странно для них выглядеть так как они его там не знаю кто-то из них до этого удали Но с другой стороны опять же
01:20:21 - 01:21:22
тоже такой вопрос наверное правильный потому что пользователь на этой стороне текст менял Мне кажется здесь тоже можно представить от ставить таймс темпов и если соответственно Ну как бы кто первый стал того и тапки Как говорится и Здесь также Кто первый соответственно операцию выполнил а то операции должна там примениться если например Ну хотя с другой стороны если мы сначала поменяли стиль а потом удалили текст он все равно будет удален А если мы сначала удалили а потом поменяли стиль то он тоже будет удален
01:20:51 - 01:21:50
потому что мы не могли вообще поесть стиль менять потому что текста уже не было Вот наверное с ударением Я бы предложил обработать как отдельный какой-то случай и соответственно если у нас также изменения допустим происходит по какому-то тексту который удален то в целом ничего не делает может быть какой-то Ну там вряд ли наверное какую-то статус какой-то отдельный будет просто скорее будет какая-то Допустим моделька которая будет отвечать что-то типа что ничего не произошло жди там соответственно контента так как у
01:21:21 - 01:22:26
нас здесь соединение постоянное здесь не нужно мобилки говорить чтобы она новый запрос сделала чтобы она новые данные получила поэтому она так и так их получит И вот собственно Мне кажется здесь правильнее было бы ничего не делать и чтобы просто дождалась ответа Хотя кстати есть наверное Хотя нет здесь может быть чего просто тем что мы можем сотом редактировать Когда у нас допустим сети не было и так далее вот как здесь решать тоже Вопрос хороший Потому что за это время что-то могла допустим удалиться
01:21:54 - 01:22:55
уже другой вопрос а принято вот в принципе так могло у нас закончится рисование да типа схемы и в целом это ок типа невозможно Все обсудить много времени что-то сделали что-то сделать что-то успели обсудить что-то не успели вот сейчас я предлагаю наверное завершить интервью как бы я его завершал и потом осудить уже вот у меня тут просто реально питбайка именно конкретно по этой части потому что она основная уже обсудить этот фидбэк и заодно там почитать чат вот как бы я завершал это как бы история про интервьюеров
01:22:27 - 01:24:13
Я бы спросил что мы там не успели Вот первый вопрос Это что бы ты хотел еще там дорисовать обсудить то что тебе не хватило времени но ты считаешь это важно Вот такой первый мой вопрос Ну как бы мочи из очевидного Мы не успели вообще поговорить про шаринг Хотя это у нас было в требованиях это Ну конечно не круто с другой стороны нас объем тоже довольно большой был плюс мы очень слабо затронули вопрос как раз взаимодействия там с оффлайн что в целом редактирования поддержки оффлайна вот тоже хотелось бы про это поговорить там
01:23:34 - 01:24:48
есть на самом деле про что поговорить вот ну и там по Flow наверное Вот как раз по списку документов там наверное стоило все-таки поговорить что мне кажется часто подниматься это нужно но в остальном наверное все так и можно еще гляну на требования Может быть я что-то забыл с требований как раз так стиле шаринг редактирования там несколько человек Ну да наверное да [музыка] И второй вопрос Ладно перед вторым вопросом я скажу Меня нормально слышно ну плюс-минус понял а так второй вопрос Если бы ты что-то
01:24:15 - 01:25:45
мог изменить при этапах проектирования либо в самой схеме Что бы ты хотела изменить Как ты считаешь если вообще что-то тут что можно было по-другому провести сделать обсудить Ну сто процентов есть конечно во-первых мне не понравилось решение с тем что он несколько схем получилось 1 верхний уровня 2 для списка документов третье соответственно для редактирования не знаю как это пофиксить чтобы это нормально выглядело может быть потом будет возможность у тебя спросить как бы ты это сделал Потом я с модельками тут
01:25:12 - 01:26:32
конечно стоило наверное не торопиться потому что я понимаю что времени обрез хочется успеть как можно больше сигналов дать какие-то говорить штуки про которые я знаю и так далее какие-то проблемы основные решить но возможно стоило не торопиться и немножко подумать про модельки чтобы в итоге сделать какой-то допустим апдейт чтобы его потом можно было везде переиспользовать и не делать все модельки разные и потом соответственно как-то пытаться воедино свести вот что еще что еще Ну тут опять же тоже
01:25:51 - 01:26:57
интересно услышать твоё мнение возможно стоило поговорить про шаринг то есть получилось так что мы детально поговорили еще какие-то там дополнительные фичи но один из пунктов требований вообще не затронули ну то что как бы его здесь в целом нет на схеме Если да Опять же у нас нереальное проектирование там какой-то функциональность которые будут делать но все равно если кто-то захочет потом допустим по этой схеме что-то реализовывать он будет очень удивлен Потому что шаринка от product в требованиях есть но на схеме он вообще
01:26:24 - 01:27:25
нигде не отображен вот ну наверное как-то так Я родился еще третий вопрос как бы ты я Оценил сам себя но типа не какой-то уровень А вообще доволен ты или недоволен как Ты ощущаешь да Ну мне кажется не хватило системности Ну да я недоволен принципе после всех собеседований своих Мне кажется не хватило системности плюс тайм-менеджментом плоховато у меня сложновато было контролировать но здесь еще как бы вмешивается то что у нас нереально собеседование а мы иногда там какие-то штуки обсуждаем непонятно как
01:26:55 - 01:28:12
временно это засекать вот ну и опять же как я уже сказал те замечания которые я бы сделал по-другому Я считаю их минусами не очень нравится что несколько схем получилось хочется все-таки какое-то одно и тоже У нас система не системы она должна как-то совместно работать вот как-то так принято вот тогда перед тем как начать фидбэк и много говорить я переключу интернет вдруг что-то будет лучше я думаю мне на это нужно 30 секунд вот ребят можете пока накидывать вопросы в чат Я думаю что после моего фидбэка мы на них
01:27:40 - 01:28:55
накинемся и Можете написать душно я аутист или не душный Серега уйдет моего обсудим у нас 30 секунд всего накидываем меня на самом деле если по фидбэку говорить мне показалось что очень много чего мы пытаемся покрыть вот ну потому что одновременно поговорить детально про там список документов про редактирование и про шаринг Мне кажется сложно в рамках такого времени вот возможно возможно я ошибаюсь и как-то получится это получилось бы это сделать а так в остальном по моему Отлично все Так ну погнали
01:28:23 - 01:29:37
обсудим фидбэк у меня тут это списочкам у меня это было по как бы по потоку моего сознания то какие мне мысли возникали и как бы я давал тебе фидбэк в конце то есть у нас в компании мы пишем какой-то документ какой-то напишем документ в котором пытаемся какие-то плюсы и минусы подвести и дать какую-то оценку и Обычно такие там заметки ты перебираешь и у тебя всплывают какие-то идеи О это типа Классно Это плохо поэтому я это без оценочно пишу и типа никак не вмешиваюсь не говорю что типа так стой я просто пишу и хорошее
01:29:22 - 01:30:41
плохое Поэтому я буду говорить и вычеркивать то что я сказал потому что у меня что-то может новая родиться это запишу так первое Это несколько схем Я считаю это нормально это типа как успел замьютиться перед чихом считаю важно в онлайне короче несколько схем это нормально потому что мы же не пишем весь код нам в одном классе и кажется несколько сущности это нормально понятно что можно было делать одну большую схему но скорее всего мне бы было сложнее оценить потому что я человек обычно не машина и мне было просто сложнее это все
01:30:04 - 01:31:32
держать в голове и поэтому этом мое личное мнение могу ошибаться покажется что две такие схемы лучше мной воспринимаются я их могу лучше понять лучше тебя оценить чем одна большая схема и я бы такой Так у нас есть одна схема но я вообще запутался Да и ничего не понимаю и так как я субъективный человек скорее всего написал что схема получилась сложная потому что она большая Она ничего не понимаю вот поэтому мне кажется несколько схем в данном случае это нормально потому что помогло я тебя понимать в течение
01:30:53 - 01:32:01
интервью Вот теперь вернемся в начало это так с конца 1 у меня была мысль Нужны ли нам два репозитория и потом ты сказал что да Нам нужны два и конкретно тут мне не хватило деталей того что все-таки зачем нам в принципе нужны репозитории потому что мы не увидели конечно никаких функций Никаких данных как концепция понятна ты обсудил пользу репозитория конкретно тут на схеме мы так и не смогли дойти до того что зачем они нам понадобятся на концептуальном уровне понятно и мне-то самому тоже хотелось сделать два
01:31:27 - 01:33:00
репозитория но конкретно тут Мы не успели это обсудить но там очевидно бы по ручкам вообще все отличалось то как редактировать документ одни запросы то как отобразить список получить какие-то данные другие запросы Но если у меня были какие-то данные дальше абстрактное интервьюер и представить что ты проходишь в абстрактную компанию есть люди с разным опытом и кто-то например топил бы за один репер историю себя внутри Ему нужно было больше аргументов чтобы понять почему у нас два типа история А почему
01:32:16 - 01:33:28
нас вообще репозитории если заходить дальше то точно так же можно сказать про любую сущность до про ЮС кейс и тут уже как повезет типа это 50 на 50 это неплохо и не хорошо Ну ладно какая-то вероятность если допустим я интервьюер который точно также там верит в Клин архитекчик я там использую есть кейс понимаю зачем они я использую репозиторий Я примерно представляю мне все понятно Если я какой-то Рандомный Чувак супер синер который делает что-то непонятное и просто он проводит архитектуру потому что архитектура это
01:32:52 - 01:34:01
что-то общее и он не видит каких-то деталей что конкретно в этом диске есть она действительно нужна не нужен то тут могли бы быть Вопрос вот я это отметил чисто как фидбэк того что каждый раз когда ты водишь какую-то сущность помимо того что есть общая информация и обычно на самом деле Вот вам документики которые мы упоминали там написано как совет интервьюеру не нужно обсуждать общепринятые вещи потому что вы тупо потратите время на то что он скажет это общепринятые вещи типа все у нас Классно
01:33:27 - 01:34:42
и конкретно тут ты много говорил полезный общая информация о том что есть какой-то подход Он позволяет нам отделить он погулять то-то Мы в конечном счете не увидели А что нас там будет виски Какой код и Наверное если бы ты понял какой путь какой тут понял что там такая-то прослойка ты бы мог просто сам сказать что типа мы используем кейс потому что мы предполагаем какой-то масштабирование какое-то дополнение логики но сейчас например кажется что он не нужен потому что в нем вообще ничего нет ничего не происходит Мы просто
01:34:04 - 01:35:07
репозитории ходим или мы там просто спрятались от репозитория тогда мы подумали Нужно ли нам прятаться репозитория потому что может быть у нас такой домен в котором У нас вот эта модель хо туда сюда Вообще наш одинаково типа оказалось так что нас там все поля идентичные Но это как пример но из-за того что этих деталей Нет я просто не могу это оценить Это неплохо это то что я бы себе ответил что ну непонятно Давай посмотрим на все остальное Оценил бы просто потому что есть так много наговорил Идем дальше
01:34:36 - 01:35:48
вот опять же я это уже проговорил что что ты создал впечатление хорошего разработчика который знает все общепринятые практики который как бы не пальцем дело но ты не произвел впечатление человека который задачу самую большую может разбить до таких маленьких кусочков чтобы было вообще понятно чтобы джун мог до сделать грубо говоря чтобы он понял вот так я буду делать это я могу строить гипотезы Но кажется это проблема всех и интервью бывают разные интервьюеры есть интервьюеры которые вообще не смотрим на детали Я хочу
01:35:15 - 01:36:57
увидеть верхний уровни квадратики хочу услышать про паттерны хочу услышать какие-то штуки и каких-то компаниях это будет класс есть какие-то интервью радушные аутисты которые я хочу видеть модели хочу что-то понимать хочу чтобы у меня вообще там было какое-то суперпонимание но мне не важно например обсудить все То есть то что мы не обсудили шерринг пофиг там то что меня все это пофиг но зато что мы обсудили Я все понял И тут скорее я это отмечаю как то что когда вы проходите Интервью вам нужно понять кто ваш интервью или
01:36:06 - 01:37:15
спросить у него ты душно аутист Или ты на какой уровень детализации надо опуститься и вот у тебя опять же ты создавала впечатление человека который очень опытный очень много говорил и в принципе бывают кандидаты которые наоборот долго молчат и ты постоянно вклиниваешься это было хорошо что ты а ну не останавливался и создавал впечатление того что у тебя очень много идей очень много всего но иногда тебе лично Да Совет что ты мог бы делать остановки Раз в пять минут и обсуждать что-то туда ли мы идем ты хочешь что-то
01:36:41 - 01:37:59
углубиться или ты хочешь дальше Вот и я не тороптил потому что у тебя поток мысли есть 5 интерактив это было бы примерно выглядело так да ты на какой-то мысли Мне нужно как-то вклиниться и сказать так остановись и типа это не очень прикольно потому что я как раз хочу посмотреть какой то И куда ты меня потому что это словно Собес уже такой когда мы хотим оценить какие-то софт скиллы скорее Да вот я написал себе что когда ты сказал что вот я и типа там я этом пофиг вот оказалось что это не пофиг Я себе
01:37:18 - 01:38:38
отметил что обсуждение какой-то архитектуре на ЮА и в принципе может быть Также важно как обсуждение там есть у нас репозитории или нет Вот это можно уточнять можно это не уточнять Но аргументировать это разные ситуации конкретно в этой ситуации Я бы уточнил и наверное я бы опять же вот есть от моих записи уйти и уйти к общему систематичному фидбэку кажется что из-за того что это частая проблема Я ее для себя типа не то что я на тебе это заметил Это я замечаю на других А у тебя заметил кусочек этой
01:38:03 - 01:39:24
проблемы Что опытные разработчики не пытаются подумать в начале знаешь как типа медленно запрячь то есть условно Тесь какая-то машина и ты сначала перед тем как ее завести ехать ты ее прогреваешь и вот тут у меня было впечатление как будто ты не пытаешься прогреть машину а просто как начал сходу там тут все репозиторий вот тут так тут такие и я только сидел успевал записывать И из-за этого какие-то моменты ты сам упустил грубо говоря вопрос на ответ Нужно ли обсудить там какой-то юань слой где-то там не нужно
01:38:48 - 01:40:07
где-то нужно Если бы ты начал там самого начала и такой Окей раз будет там экран типа Окей в нем нужно нарисовать этот текст каким-то образом А вот мы пойдем получим этот текст а мы как большую строку получим и Нарисуем эти или мы нас будет Китай там абзацы и вот даже начиная с этого момента ты бы мог А у тебя в мире все изменилось понял что например мы оперируем широками какими-нибудь сущностями типа абзац потому что в editory но оперировать какой-то большой штукой скорее всего было бы ты идешь репозиторий говоришь Дай мне
01:39:27 - 01:40:44
текст этого документа и вот как там сказал про пагинацию Наверное ты не хочешь если у тебя текст очень большой сразу весь получить отрисовать вот из-за того что твой опыт как бы в этом случае был твой враг Потому что ты с одной стороны показал свои большие знания про то что ты все знаешь ты понимаешь как разрывать в Android Это хорошо то что не прогрел машину в нашем случае кандидатов приводит конечно гораздо плачевное состояние когда типа в целом получается какая-то схема непонятная потому что мы не проверили машину Мы
01:40:05 - 01:41:18
приехали где-то заглохли типа Все мы понимаем блин оказывается вот эту штуку надо отследить Все я много проговорил опять же останавливаемся пагинаться опять же я заметил записался плюс хорошо что вспомнил я про нее честно вообще там не думал потому что ну потому что я ленивый разработчик который пришел на интервью не подумал Вот уж ты подумал Если записал Плюс потому что но на самом деле я не подумал что не пишу продуктовый код я типа всякими абстракциями там всякая фигня это что это сказал я не знаю на
01:40:42 - 01:41:53
другого интервью произвело бы впечатление или нет но на меня произвел точно это прикольно Вот Но когда ты вставил эту пагинацию в схемку ты ее вставил над репозиторий Я честно не понял почему она там типа за репозиторий ближе к сети а не перед репозиториям что типа репозитории по идее может получить абстрактную любой бейдж 1 2 или 3 апагинатор хранит грубо говоря текущий Пейдж по идее если он знает текущий то по идее он может пойти уже в репозитории сказать какой Нам нужен и типа для меня это было То
01:41:17 - 01:42:45
есть это обсуждаемо и так ты поставил сюда я этого не понял если заметил что этого не понял и скорее всего я бы если у нас было время обсудил бы это в конце опять же да там плюс когда ты делаешь пятиминутные остановки мы бы возможно больше вероятность того что мы это обсудили когда мы не делаем пятиминутной обстановке У меня есть в конце какой-то период времени когда я начинаю задавать вопросы которые я записал вот если записал уже не понял тебя спросил вот сейчас это в контексте уже не важно ни на что не влияет важно
01:42:03 - 01:43:10
то что типа совет общий типа нужно как-то учиться это тайм-менеджить на самом деле совет простой Почему люди плохо тайм-менеджер беседу потому что они стрессуют потому что они пытаются выдать большой объем знаний и потому что они в этот момент не фокусируются на Том понимает ли их интервью А фокусируется на том чтобы так как я себе это вижу и ты как бы можно сказать сам себе рассказываешь то есть нет в этом потоке сознания того что ты на самом деле заинтересован можно представлять интервью как жена вот
01:42:36 - 01:44:01
Представь что джун Если бы я был джином ты бы не мог мне так рассказать потому что тебе пришлось бы много мне объяснять задавать какие-то вопросы хотел бы тупил ничего не понимал так как ты представил что сеньор я все понимаю Мне ничего не надо объяснять я все там как будто я сам если надо остановлю и все такое вот это наверное такой совет что если относиться как А это на самом деле так есть опять же можно спросить у интервьюра он кто сегодня он сегодня джун он сегодня сеньор типа он хочет чтобы я ему там
01:43:19 - 01:44:31
разжевывал и все такое это будет лучше чем это с большей вероятностью сыграет на большем количестве интервьюеров может не сыграть на клано душном аутисте который такой сидит и думает Так что ты мне задаешь какие-то очевидные вопросы вот я бы так не думал я бы думал мне нравится мне задают вопросы Потому что люди очень часто они думают о собеседники просто что-то на него вываливают он ничего нет так про ЮС кейсы я уже говорил вот интересную заметку сделал для себя так я засекал время я засекал его еще с
01:43:55 - 01:45:08
целью того что мы же делаем контент и нужно чтобы все люди это для себя тоже вынесли что когда мы начали делать детали схемы мы посмотрели в требования через 13 минут ты 13 минут на автомате просто рисовал квадраты что-то делал стрелочки И потом Так у меня же есть требования Я же зачем-то собирал это опять же часто ошибка что люди собирают требования а потом не использует их никак И это мешает это может в худшем случае привести тебя куда-то не туда вот в не худшем случае Просто если у интервьюера есть чек-лист по которому он
01:44:35 - 01:45:59
ставит оценку и там есть пункт чек-листе Использовал ли требования Как часто мы к ним обращались там типа будет не часто типа Окей вот не знаю как ты потом будешь давать на мой фидбэк потому что мне уже тут страшно так в начале я себе написал фидбэк что схема все еще выглядит верхние уровни Вот то есть у нас там было условно 4 квадратик осталось 7 добавились эскиз и ничего не изменилось но потом начались уже стрелочки появляться с какими-то штуками и стала менее верхнего уровня опять же мы это уже проговаривали нужно с каждым
01:45:16 - 01:46:36
интервьюером обсудить насколько он хочет детально где погрузиться вот у меня на самом деле этот это наш типа Можно было бы задушить и сказать что А что интервью сам не сказал как он хочет А я просто как душно интервьюер не знаю как я хочу типа у меня в моменте какие-то штуки мне супер Понятно Я не хочу в них погружаться А какие-то вообще непонятные Я бы хотел погрузиться и поэтому если бы ты сказал вначале Я короче не хочу никуда погружаться потом бы ты что-то сделал я бы сказал блин ничего не понял
01:45:59 - 01:47:08
Или наоборот я хочу супер детально ты мне начал не знаю так глубоко погружаться обсудили одну стрелочку какую-нибудь вот поэтому наверное и невозможно как-то мне но может Напишите в комменты Может я что-то мог сделать чтобы тоже направить начать вот ремонт конфиг Remote config это было хорошо то есть у этого штук Есть плюсы минус плюс что ты знаешь что такое Remote config про эту концепцию что это хороший Инженерная практика минус ты создал себе сложности ввел какой-то ремонт конфиг он как-то что-то
01:46:36 - 01:47:53
сбоку был нужно было теперь о нем думать опять же В любой непонятной ситуации смотри В целом у нас есть такая концепция как ремонт конфиг Как ты думаешь давай его в сторону отставлю Если что мы его потом интегрируем если он нам нужен типа и получается ты автоматически выиграл что ты похвастался ты знаешь про ремонт конфиг отстаивал в сторону те не мешает я про него забыл и типа ну и с Богом Как говорится так когда ты выбирал о том когда ты выбирал что вот у нас есть редактирование Мы дошли до редактирования о том что у нас
01:47:15 - 01:48:30
есть проблема с тем что пользователь может что-то редактировать и мы можем очень много запросов слать это было хорошо минус был в том что может конечном итоге в конечном счете и не выбрали чем как мы в итоге будем и наверное тут совет такой что Когда возникает кора вопрос Это очевидно кора вопрос и мы не можем определиться как мы хотим этот вопрос можно выписать подумать 30 секунд сказать я сейчас не знаю как лучше Как ты думаешь Стоит ли остановиться и все-таки решить как лучше или идем просто дальше И мы знаем что
01:47:57 - 01:49:20
это важная штука И мы не будем думать перед тем как в релиз пойдем но сейчас кажется что у меня там нет опыта там не знаю что угодно но типа плюс если у нас есть блок с какими-то важными вопросами которые не успеваем обсудить и мы про них точно не забудем я для себя поставлю плюс что мы обработали типа этот кейс и не создалось впечатление что ты там тупо не захотел это обсуждать потому что тебе страшно ты не хочешь Ты не знаешь и ты такой пофиг Я не знаю не хочу Типа все отвалите от меня вот чтобы это просто не
01:48:40 - 01:49:51
происходило Можно вот такой паттерн использовать и выписывать это текст текста update в текста Date ты использовал string и я себе записал что стринга у нас может быть недостаточно потому что у нас может быть текст апдейт безусловно Смотри ты рассматривал текст апдейт и стилизацию как два разных штуки А что будет если я написал текст и применил стиль и очевидно что текст апдейт это наверное какая-то одна штука когда мы делаем Это апдейты наверное он может содержать в себе это все Я просто подумал посмотрел на эту строку и
01:49:16 - 01:50:37
подумал что из-за того что мы не пошли сценария того пользователя что давай представим что делает пользователь он Ну вот как с дебаунсом Да ты подумал что пользователь печатает быстро Вот это произошло пользователь сделал удалил добавил вот это как нам это объединить послать апдейт вот опять же ты сам себе немножко ухудшил модель данных потому что ты не подумал сценарий из-за этого у нас получилось больше но получилось чуть не продуманный с точки зрения того что мы могли какие-то штуки упростить и вместо стайловский
01:49:58 - 01:51:18
нас был один который принимал update который например список апдейтов или там один типа вот это вот наверное упростила вот записал себе что вот в этот момент я себе записал про то что ты думал только про Happy Pass не думал Про фейлы того что А у нас конфликт на этапе апдейта появился А у нас ошибка от сервера и типа вообще этого никак не обсуждалось и типа кажется что это важная тема А что мы будем если мы отправляем запрос он не отправился как мы будем это retrike не будем или мы пользователю как-то покажем какой-то
01:50:38 - 01:52:08
всплывашку и опять же если идти не от личного опыта А сценариев и пытаться прогреть машину и выписать пользователь сделал у него все получилось пользователь сделал была ошибка пользователь сделал была ошибка Вот такая конфликт там или пользователь что-то еще так вот если записал уже проговаривал что ты очень много говорил Я очень мало говорил Если бы схема получилась идеальной мне было пофиг то что были какие-то моменты которые мы Я бы мог тебе помочь сделать я не смог помочь потому что у тебя был
01:51:25 - 01:52:48
поток я не знал как его остановить условно у меня могло быть другое настроение Я бы знал как его установить вот просто заметочка вот простая лапдейт и про то что у нас может быть ситуация когда мы делаем ставила тому чего уже нет и но мы об этом не подумали я сдал В конце совет какой опять же если у нас были сценарии мы бы поняли что у нас может быть какой-то конфликт и мы бы обсудили и понятно что интервьюером Вы не должны кандидату кандидата заставлять разбираться в каком-то домене Потому что если у него в
01:52:12 - 01:53:37
этом домене опыта нет вот нет у человека опыта в конкурентном модификации одного ресурса нет смысла это спрашивать это собеседование по проектированию не собеседования знания конкурентного модифицирования документов поэтому это вообще не минус но сказать вслух кандидат должен что тут конфликты могут быть О это вот это Это типа это плюс если кандидат почему-то у нас супер матч он тоже делал редактор документов это просто Ну будь другое отношение кандидату там я могу спросить что-то про это спросить а
01:52:58 - 01:54:15
там какой паттерн мы можем использовать что-то про это знаешь как у вас на работе там было Это было бы скорее в конце проектирования как общая штука которая могла бы улучшить фидбэк например вот обсуждение вот тут мы дошли до обсуждения про обсуждение наверное было бы плюсом Если бы у нас помимо схемы может мы нарисовали телефон какие-нибудь может блоки на нем со стрелочками Но это типа не минус Это скорее Я бы делал так это было бы прикольно прикольно Если бы у нас юань стал телефоном на который мы как-то
01:53:35 - 01:54:59
показывали что вот этот там часть мы обновляем это просто смотрелось эффектно вот и про обсуждение ты опять же проявил свои знания знаешь как будто бы ты частично проходил Собес по платформе как будто мы обсуждаем в целом Android и как надо делать и как делать не надо как будто мы не проектировали как будто просто ты рассказал все лучшие без практики там как делать Google это очевидно плюс но это мне кажется тебе мешало из-за этого ты тратил больше времени иногда рассказываю каких-то штук И когда я сказал про юай
01:54:24 - 01:55:49
мы могли там с другой стороны обсудить но в итоге я просто узнал что ты хорошо разбираешься там и у тебя есть свое мнение по поводу там вот это вот все но я хотел Направить как-то в сторону какой-то модели как этого в юге чё там кого но в целом обсудили вен это тоже Ну хорошо что ты не затупил Да и не оказалось что ты там А я просто не знаю какие паттерны использовать и поэтому вообще непонятно что там на будет Вот и в целом это не выглядело как что-то плохое Вот это выглядело Хорошо что ты знаешь где тут
01:55:09 - 01:56:39
есть что рассказать тебе так потом ты рассказывал про стейт это в целом типа можно туда же отнести Что стоит это хорошо стоит применимо к нашей задаче ни на что не повлиял типа вот он был Вот его не было бы так вот когда ты изменил апдейт на апдейтс я себе лично когда провожу интервью делаю заметки У меня чек-листе есть такая штука Насколько часто кандидат переделывал свои же решения часто если мы сейчас вот вернулся часто если мы не прогрели машину то у нас как раз такой сигнал часто возникает что мы
01:55:53 - 01:57:18
переделываем Мы создали одну модель Потом оказалось что ой боли не хватает Ой а это вообще другая модель Ой а это существо вообще не нужна у нас таких сигналов было немного Вот но был вот про апдейт это просто мне стырило А почему у нас было апдейт мы что-то обсуждали Нет уже вообще ничего не обсуждали просто было так вот еще раз я себе записал редко смотрели на требования когда ты второй раз посмотрел на требование в конце и да и записал себе что мы не продумывали ответы от Back and Но это я уже сказал типа ошибки там не
01:56:47 - 01:58:11
ошибки что нам вообще бэкенд может ответить все я вычеркнул все элементы и теперь скажу В целом чтобы я написал фидбеки Если брать градацию от одного до пяти мои впечатления то блоки про сбор требований какой-то первичное общение у меня было бы ближе к 5 если мы говорим про верхнеуровневую схему вот на мой вкус верхнеуровневая схема получилась такая что как будто этот этап вообще не нужен и по идее на вот верхнеуровневой схеме у нас Ты должен был бы ты должен был бы сказать что так нас есть требования Давайте
01:57:38 - 01:59:15
представим что пользователь сможет сделать выписал какие-то бы сценарии что мы там тут добавили тут вот этот удалили понял да Значит нам нужна такая сущность Такая сущность Такая сущность тут у нас будет придется ошибки наверное как-то обрабатывать или травить придется Вот это придется как-то синкаться наверное тут Будет все у нас каким-то блоками рисовать тут вот так и у нас было бы чуть больше обсуждения чем просто мы обсудили общий принты практики поэтому второй блок Я бы Оценил наверное на типа
01:58:25 - 01:59:43
три с минусом 2 вот так что типа того в идеале если бы это все было но я сказал короче было Вот по схеме финальная Я бы тоже поставил где-то 3 потому что все-таки ты очень много чего сделал очень много концептуальной было информации полезной очень много было каких-то моделей но просто все было не продумано то есть получилось много всего и все было не продумано везде если бы мы вот как я задал вопрос А что будет стиль вот так обновляем а что будет если вот это и везде ты бы что-то тебе пришлось по чуть-чуть редактировать тут эту
01:59:04 - 02:00:16
модель не нужна тут вот это поле добавить тут вот так тут вот и в итоге если вкратце кажется что общая оценка какая-то типа 3 получается финальная первый блок тебе вытаскивает за то что ты адекватный человек который подготовился который задал какие-то вопросы все было хорошо это на самом деле важная часть многие люди Ты не поверишь Они просто приходят такие Ну что надо делать Вот это ну погнали просто начинает что-то долбить это вообще очень страшно люди даже не задают никаких вопросов тебе просто долбят час
01:59:41 - 02:00:50
тебя вот так и поэтому я начал говорить на самом деле кандидатом часто останавливать их и говорить так я понял ты ничего там не смотрел Ты не знаешь как это проходит это будет проходить Так я хочу чтобы ты что-то меня поспрашивал чтобы знать что делать чтобы не просто что-то делать Я хочу что-то маленькое увидеть и хочу что-то потом большое обсудить как получится как пойдет Сколько времени хватит вот у тебя было представление это было хорошо вот вроде бы все сказал Вот теперь слово тебе и какие-то вопросы
02:00:15 - 02:01:26
Возможно у тебя есть и чат что-то тоже пишите ну прикольно Да у меня тоже зависит пример вообще ничего реагировать не хотел там Серёга был главный вопрос вот от того как Андрей прошел хватило ли бы этого чтобы попасть Ну даже не попасть Ладно давай так хватило бы этого чтобы попасть на другие этапы собеседования вашего то Вот как он нас это финальный у нас Смотри это финальный этап собеседование и Он решает Great то есть грубо говоря условно он если человек на этом этапе он уже по предыдущим Оценил себя как
02:00:50 - 02:02:06
минимум Middle и на этом этапе мы проверяем от мидла сеньора Ну там потому что разные люди с разными зарплатами у нас один до е8 и Middle сеньор это E4 E5 и 6 и 7 я таких не видел людей Ну ладно видел Они работали уже когда я пришел вот никогда со стороны никакой семьи приходи это супер бэкендеры там конечно приходили есть семьи 8 мобильщик Это скорее 4.5.6 и мы бы просто выбирали вот сюда Андрей если оценивать так что-то между Е4 Е5 Да если все было идеально это как раз когда я сижу у меня вообще ничего я не могу сказать все
02:02:08 - 02:03:44
классно это типа е6 скорее всего когда что-то среднее это положительную сторону между 5 6 но тут кажется что предыдущий этап если он просто хорошо знает платформу то может могло бы быть типа E5 Да если он по платформе показал себя Ну так просто нормально не не супер хорошо то было бы ближе к Е4 но я Давай давай проще то есть типа что уровни знаний которых он показал достаточно было бы чтобы успешно типа закончить техническую часть не говорим про какой уровень А вот про то что Да нет потому что мы не требуем от
02:02:55 - 02:04:14
разработчиков чтобы они были супер архитекторами мы требуем от них чтобы кандидат показался как адекватно адекватно Он создал приятное впечатление создал приятное впечатление Наверное он бы не мог пройти если бы он был каким-то мудаком тут все было адекватно все было относительно там текущего состояния Android разработки я услышал кучу актуальной инфы но на меня не хватило чтобы дать какой-то супер высокий Грейт мне не хватило того что все это перечислял тут активно спрашивают что такое E4 E5 и
02:03:37 - 02:04:50
6 можешь пояснить Но это на это типа вот как в крупных компаниях типа Гугла есть там став синяя став Синьор Синьор сеньор Синьор Мидл вот эти все деления у нас в какой-то момент были грейды Junior Middle сеньора принципал в какой-то момент поняли что в этой линейке грейда непонятно Но люди очень сильно привязываются им обидно вот он сеньор В компании какой-то он приходит к нам А мы говорим ты Middle а при этом денег он больше получает например но ему все равно обидно потому что он не видел поэтому у нас не видел у
02:04:12 - 02:05:30
нас Е4 Е5 главное короче чтобы это началось в денежную вилку на самом деле всё остальное это это наша отношение к тому сколько денег платить Какие ожидания от кандидата которого мы взяли как мы вообще потом дальше будем его повышать Но это больше менеджерская тема Я в этой теме То есть я не ставлю оценку кандидата он кто Е4 или 5 я ставлю кандидату что он прошел проектирование на Сток это условных попугаев Это все как хорошо нанимающий менеджер складывает потом это да У меня последний вопрос остается
02:04:51 - 02:06:12
Перед тем как мы перейдем к фидбэку Андрея А какой Great у тебя в компании у меня есть все Андрей теперь тебе слово но у меня из-за лагов раз стрима потеряли заметки но в целом я плюс-минус помню по большинству Ну по большинству Почти по всем на самом деле пунктам никаких вопросов возражений нет я абсолютно всем согласен и в целом как бы ну какая-то торопливость это на черта характера моя которая мне во многих местах мешает и конкретно Здесь тоже стоило чаще тебя спрашивать и так далее вот Ну не знаю в оправдание оправдание
02:05:33 - 02:06:47
могу сказать что здесь действительно важно понимать как бы кто твой интервью потому что ожидание разные там от компании даже в одной компании в разных интервьюеров тоже разные ожидания здесь ну ты вот такой лайфхак предложил Просто спросить что мол собираемся ли мы Ну что будет лучше чтобы мы верхний уровень затронули все соответственно компоненты все Flow Либо мы допустим про какой-то один компонент очень подробно можем поговорить И так далее У меня вот этого управление ожиданиями не было поэтому я
02:06:13 - 02:07:12
все время разрывался то ли нам все как бы требования закрыть то ли нам наоборот что-то там подробно углубиться и так далее вот по основному в целом как бы Ну действительно все валидно с там со строками с абзацами это ну очевидный такой фейл как и там много остальных вот скорее всего действительно потому что как-то говоришь я там машину не прогрел стоило подумать насчёт этого вот Но это прям супер очевидно такие штуки если бы у меня было больше времени по-любому это где-то фоне Эти мысли пришли но вот к
02:06:42 - 02:07:46
сожалению на собеседованиях время не так много вот Ну и наверное только единственное по поводу апдейтов вот по поводу всего остального я Ну не знаю может я не так Я понял но насчёт апдейтов Я на как это называется Короче когда мы разговаривали про то чтобы я поменял я вот стоило подумать там насчет модели потому что там по факту действительно модель должна быть одна и в целом вот эти эскиз они бы тоже объединились вот здесь не знаю не то что не согласен но не совсем согласен точно а в остальном действительно как бы все
02:07:14 - 02:08:27
так все видно и супер полезно для меня Спасибо мне понравилось Хотя мог намного конечно лучше сделать но на будущее видимо будет но опять же да я писал просто свой какой-то поток мыслей и то что ты говорил в конце какие-то мысли становились не валидными Вот Но в моменте эта штука была актуальной и я вот многие штуки которые проговаривала они были Про то что Все могло повернуться по-разному Да опять же если машина прогрета то мы едем Уверенно и все хорошо тут Ты вспомнил в конце мог не вспомнить в конце Тебе это
02:07:50 - 02:09:12
пришло в голову или не пришло в голову это просто про то что самому себе мог бы сделать безопасно то есть нет такого что ты произвел плохое впечатление Типа все плохо если типа так сказать например я за последний год ну или там два полтора не помню провел проектирование допустим 50 из 50 проектирование [музыка] Мне понравилось 3 и типа это проектирование Но точно входит в какой-то список за как сказать Вот если взять 50 ну типа точно там 20 15 место Ну типа тут не так много дорабатывать чтобы было хорошо вот
02:08:35 - 02:10:20
и я считаю что такой кандидат как ты мне нравится вот я точно рекомендовал Да я бы рекомендовал брать новая лычка такая хайринг файринг openwork и боишься мы или Кирилл ты тут но ты думаешь точнее тебя нет ты думаешь что ты тут Давайте какие-то может еще вопросы есть в чате Если вы просто в чате нет то то все получается на сервер что-то носит жду комментарии хейтеров Да так ребята уже время подошло к концу хочется можно лучше слышно вообще проводить собеседование Вы меня слышите Я тебя слышу Да
02:09:32 - 02:11:17
значит только Серега меня не слышит хорошо все Да к сожалению подошел концу ребят уже надо бежать довольно поздно прочем Большое спасибо Сереге Андрею за вот то что сегодня было мы увидели прочему действительно было классно мне тоже на самом деле понравилось все было очень неплохо хорошо вот все свои вопросы под этим видео да возможно задержка поту и прочим вот закидывайте все свои комментарии и вопросы прочим под этим видео Я обязательно потом ребятам передам зерна чтобы они поотвечали и прочим если
02:10:29 - 02:11:41
хотите еще что-нибудь интересное увидеть но как минимум можете посмотреть как Серега меня прожарил на собесе там это есть там довольно интересно все и много чего другие полезные всякие кейсов где проходили довольно интересное интервью как и технически как и на разные позиции прочим поэтому присоединяйтесь смотрите и возможно в одном из будущего тоже также поучаствовать всё на этом У меня всё Всем большое спасибо большое спасибо ребята и до новых встреч пока-пока
02:11:07 - 02:12:03