iOS Мок Интервью Middle разработчика - Вячеслав

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

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

  • класс хорошо у нас уже много людей собралось Да 26 участников открытое собеседование Вячеслава Круто Давай я расскажу немного про то как нас будет проходить собеседование а пото кодить мы не будем шарить экран и что-то в таком духе делать Я могу скидывать какие-то куски кода Спрашивать тебя что-то но ничего не нужно будет компилировать это будет больше так на Понимание Вот по времени у нас как же в голове компилировать Это конечно это читерство но да можно где-то минут 4045 будет отведено на собеседование в

    00:00:03 - 00:01:43

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

    00:00:59 - 00:02:31

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

    00:01:49 - 00:03:36

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

    00:02:43 - 00:04:21

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

    00:03:32 - 00:04:47

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

    00:04:09 - 00:05:42

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

    00:05:02 - 00:06:23

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

    00:05:42 - 00:07:01

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

    00:06:23 - 00:07:43

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

    00:07:07 - 00:08:32

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

    00:07:51 - 00:09:23

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

    00:08:37 - 00:09:57

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

    00:09:18 - 00:10:34

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

    00:09:58 - 00:11:18

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

    00:10:38 - 00:12:17

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

    00:11:27 - 00:12:39

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

    00:12:04 - 00:13:20

  • или может мьютексы Вот Но но я скажу честно в опыте по опыту я так скажу в свифте я встречался один раз только вот как раз у нас на продакшене Что у нас где-то там был Лок и я так до конце не понял зачем он там нужен но я решил его короче не трогать А то не дай Бог всё развалится вот Окей окей а Можешь ли ты рассказать может про какой-то более такой новый способ так создание сейчас скажу ан нун не про поток безопасность конечно в этом плане но что-то в этом контексте даже в этом не сильно работал вот потока

    00:12:41 - 00:14:02

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

    00:13:25 - 00:14:48

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

    00:14:08 - 00:15:33

  • умрёт после жизне ко отработала то всё Угу если мы хотим чтобы она жила Дальше например как например запросы в сеть то мы уже часть уже делаем скейпинг Вот и тут уже надо с ней думать предположим Ей нужны какие-то добавочные типы которые она хочет что-то использовать например мы частенько делаем селф тем самым если мы захватываем в кларе селф то он уже хватится очень сильно и будет сильная ссылка на объект нашего Сефа и пока эта кжу не отработает типа селф не удалится из памяти вот поэтому нужно похо это

    00:14:52 - 00:15:57

  • следить а вот структурами там немножко иначе о о'кей О'кей смотри мы соответственно эти клау можем ещё использовать как поля класса правильно конечно конечно как перемен свойства А нет не проти проперти Да как проперти класса А иногда мы это делаем чтобы собственно общаться Потом с каким-то родительским классом правильно то есть какой-то класс его инициализировав например в ните могут быть там несколько лажу на какой-нибудь on Success on Fail там что-нибудь и это будет отрабатывать и что-то делать

    00:15:29 - 00:16:33

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

    00:16:01 - 00:17:16

  • следить надо просто понимать кого делать Виком кого не делать Виком Вот и ещё обычно делегаты у нас построены при помощи протоколов А это уже поддержка буквы сод абстракции что я Всем рекомендую потому что это ещ проще покрыть тестами плюс К тому е если мы будем пытаться сравнивать не делегаты а журы то это очень сложно по типу потому что они пишутся кажды свою область памяти с одной стороны у вас Бут одинаковые журы Но вам будет ВС время падать тест вот поэтому это очень много приседаний так Напомни полу что говори

    00:16:39 - 00:17:55

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

    00:17:21 - 00:18:57

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

    00:18:20 - 00:19:43

  • Вот И тем самым когда мы с вами проскролить Какие ячейки появились или нет И если ячейка ушла то Можно по-хорошему отменить на самом деле ту загрузку и ждать и дать так сказать Дорогу молодым условно вот А ещё по-хорошему когда мы это загрузили картинку мы её можем где-нибудь по-хорошему заранее сохранить как закать какого-нибудь там условно давай вот да Давай поговорим про это соответственно где бы ты Каширова такую картинку Ну конечно внс кэше Потому что потому что на самом деле эти же картинки это же типич условно Коти Лента

    00:19:11 - 00:20:26

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

    00:19:54 - 00:21:19

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

    00:20:35 - 00:21:43

  • что эти отредактированные данные это немножко плохо что что это ну ну вот дата предположим у нас дата дата вот дата я могу конечно сохранять Их пнг Ну вдруг Нам надо в джипег и так далее и всё придётся так сказать это терять Есть ли разница в если мы говорим про память хранение даты Или например хранение там и готовы скорее всего есть я думаю что да В любом случае потому что у нас отчасти же всякие различные обёртки по типу в юхи и не в юхи Вот и возможно если App сделал правильно Я думаю они сделали

    00:21:09 - 00:22:35

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

    00:21:52 - 00:23:24

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

    00:22:41 - 00:24:00

  • потому что можеш переполниться и лопнуть Вот и мы не подписали конечно протокол на Следовательно мы не имеем не можем знать это как сказать это структуру или Класс вот И тем самым подписать различные условно типы данных структур одной структура будет там памяти занимать 80 бит другая 160 бит А у нас в массиве всегда должен быть одинаковый количест мы условно не сможем уместить эту структур в определённую память которая о на выделена то мы просто будем хранить ссылку на неё А это ссылка будет ссылаться на кучу и всё и там будет наша

    00:23:20 - 00:24:39

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

    00:24:09 - 00:25:41

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

    00:25:04 - 00:26:53

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

    00:26:00 - 00:27:31

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

    00:26:45 - 00:28:35

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

    00:27:40 - 00:28:53

  • реализую как я помню вот тогда у меня должен быть собственный Тогда могу предположить что да у каждого должен быть окей Окей хорошо Давай теперь я скину в чат небольшую задачку с потоками и мы с тобой посмотрим такая вот логическая зака У тебя есть такой сказать в каком порядке распечатывается можешь просто вслух рассуждать как ты думаешь да то есть конечно Ну я думаю бесспорно сначала распечатывается а угу Я думаю с этим кто спорить не будет А хм потом скорее всего наша тасо dispatch man s уйдёт в конец очереди Вот и

    00:28:30 - 00:30:15

  • распечатает F после чего наверное наш Ну скорее всего это скоуп какой-то он уже отработает и у нас будет отрабатывать то что у нас стало в очередь в очередь у нас стал первый скоуп далее отработает B после чего у нас появляется сно Ну а он попадёт в конец очереди далее отработает D далее опять поведёт в конец очереди е и Ну и как там было C и е отработает Вот это будет а FB D и Угу хорошо класс Окей хорошо Давай пойдём дальше хорошо идём Вот смотри теперь по работе с поговорим с сетью У нас есть разные

    00:29:24 - 00:31:00

  • способы работы с сетью сонно есть разные протоколы для рабо для работы с сетью Да знаешь какие-то ключевые отличия работы вот с htp запросами и ССО ой честно не скажу потому что мы с сокетами и у меня не было опыта работы вот я так делаю эти Нетворк реквесты просто и всё там Get пост запросы хорошо но хорошо давай тогда поговорим про htp запросы Get пост запросы Да делаешь раз топи Что такое представляешь конечно ага О'кей А есть такой кейс что нужно получить данные например получить пользователя

    00:30:10 - 00:31:53

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

    00:31:02 - 00:32:28

  • открыт там по факту просто видна строка Каждому кто видит это И мониторит вот поэтому я использ Кай попрос Вот который ней бинарник Хорошо тогда давай как так как ты работаешь в банке может тоже поговорим немножко за безопасность теперь работы с сетью Как ты думаешь вот эти hps запросы которые мы у на по дефолту мы используем hps правильно Достаточно ли это безопасность для вот пусть будет банковских приложений где много-много всего происходит много важного пересе конечно хороший Мне кажется в нашем мире ничего

    00:31:46 - 00:33:12

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

    00:32:31 - 00:34:07

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

    00:33:24 - 00:34:49

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

    00:34:06 - 00:35:36

  • это Композит поэтому это попадает конечно же пер Вот и обязательно документацию 100% без неё вообще никак о'кей О'кей так Ага а помимо Таких вот у нас архитектурные есть паттерны какие-то ещё есть знаешь паттерны То есть у нас сейчас я не помню их именования там их три вида помню которые мы используем Я только помню сами названия как их использую в коде вот есть У нас есть архитектурные паттерны У нас есть поведенческие паттерны У нас есть порождающие паттерны Вот что ты из них назовёшь Да конечно я пользуюсь Очень

    00:34:56 - 00:36:18

  • часто стратегией вот частенько приходится Что ещё расскажешь В чём заключается стратегия ээ в том что мы на основе каких-то полученных данных подменяя основные решения вот у меня часть функционала построена на и это по факту ма have мой так сказать рубильник благодаря которому я могу взаимодействовать между различными Юха вот простейший пример когда пользователь условно вбивает количество денег в какой-нибудь кфл Вот и я в протоколе условно каком-нибудь какой-нибудь проти и так далее эти данные и в паттерне Стратегии У меня ПО

    00:35:37 - 00:37:03

  • нажатию на кнопку Он отрабатывает и проверяет что у нас хватает денег если не хватает то мы выводим услов Вот хорошо хорошо а вот вообще по дефолту в нашей системе Да в фреймворка там Foundation UI Kit Знаешь ли ты какие-то паттерны которые чаю которые используется стабильный обсервер например в нофи когда нас оповещают что поло приложение закрылось что-то ещё и так далее вот первое что в Go приходит её а Ну есть конечно синто это когда мы условно пытаемся данные достать какие-нибудь через Application SH

    00:36:20 - 00:37:44

  • типичный SH это считаете sone вот что ещё может в голову прийти что-то слыл CH of responsibility например может быть и слышал но уже так сказать это надо вспоминать не буду Окей Хорошо Хорошо смотри у тебя такая задача юная теперь поговорим юная задача есть кнопка есть кнопка и нужно пришёл запрос от продукта или дизайнера чтобы физически кнопка выглядела точно так же но её область нажатия увеличилось как Как такую проблему решить Ну самый Костыль конечно способ - это сделать просто так как вам прозрачную Юху и просто увеличить ей

    00:37:04 - 00:39:01

  • Наказать её область и всё А так я помню что мы должны что-то переопределить Вроде что-то в этом роде вот мы можем его переопределить и увеличить область нажатия по этой кнопке обычно это делается для очень мелких кнопок по типу там с изображени 12 какой-нибудь 24 на4 О'кей хорошо А да хорошо идём А по поводу паттернов ещё Давай что-то последнее спрошу вот также в в наших фреймворка Да Foundation Можешь ли ты рассказать а то есть как какие-то видишь знаешь ли ты какие-то антипаттерны которые пол

    00:38:09 - 00:39:31

  • использует или что-то что может работает не всегда в нашу сторону Хотя Apple это имитировал они это используют но не всегда приносит нам ожидаемый результат ну все ну вот я уже говорил многие называют Анти паттерном вот а второе если смотреть но они очень сильно пропагандируют mvc если так говорить очень сильно и Ну я не знаю я не настолько преисполнен чтобы писать настолько СТ код чтобы VC мне конечно рассказывают истории что можно писать на NC очень такой хороший чистый код но я я пока так не умею и в продакшене я такой сильно не

    00:38:51 - 00:40:22

  • видел Угу о'кей О'кей хорошо А класс класс э так Я думаю мы про э в основном про вещи поговорили Э да Давай немножко поговорим про то как у нас э организуется проект в плане сертификатов знаком ли ты с различным типом сертификатов Например у нас есть там де сертификаты Да у нас есть сертификаты есть прокш сертификаты Знаешь ли ты чем они отличаются какой уровень доступа дают Вопрос хороший вот да у нас есть различные виды сертификатов благодаря которым мы их подписываем можем распространить наше приложения вот

    00:39:36 - 00:41:08

  • Конечно помню чтобы распростра и если можно было самому тако подписывать мы Было бы очень рады вот а вообще ну какая часть у них ограничения есть Мне казалось деве больше даёт возможности следить за приложением потому что у нас Мы можем условно там настраивать различные аспекты которые у нас есть даже в настройках Вот но сам по факту Я практически этим и не пользовался мне достаточно было Ну только если когда мне де позволял делать пуши вот конечно так пуши пуши кстати интересно тоже да то есть у нас есть

    00:40:24 - 00:41:46

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

    00:41:08 - 00:42:27

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

    00:41:47 - 00:43:09

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

    00:42:31 - 00:43:51

Менторы

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

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

    Middle .Net Developer

  • Сущенко Татьяна
    Сущенко Татьяна

    Senior Product Manager

  • Гудков Денис
    Гудков Денис

    Middle Python Developer

  • Курочкин Константин
    Курочкин Константин

    Ведущий программист

  • Гудман Макс
    Гудман Макс

    Backend Software Engineer (PHP)

  • Гребенкин Антон
    Гребенкин Антон

    Senior .NET/C# developer

  • Ахназаров Фёдор
    Ахназаров Фёдор

    Middle DevOps Engineer | Tbilisi, Georgia

  • Шорохов Дмитрий
    Шорохов Дмитрий

    Middle C# .NET

  • Жуков Александр
    Жуков Александр

    Senior PHP-разработчик

  • Мазикин Павел
    Мазикин Павел

    Middle python developer

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