Подготовка к собеседованию на iOS 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 каналы и чаты
Транскрипция видео:
Всем привет Это долгожданный мог Собес который много кто просил все просили все мечтали и вот он так сегодня у меня гость но он был в нескольких видео до Вы слышали немного его опыте парень светится на ёсик с сишарпа и послушаем какие ответы могут предоставить нам Вячеслав Так ну поприветствуйся Ребята всем привет Я вообще всех рад видеть вот видеть на этом канале должно быть много немного не знаю Так у нас сегодня будет принципе практически полная симуляция теоретического собеса что без Лайф котинка потому что тогда хронометраж
00:00:01 - 00:01:23
довольно сильно увеличится поэтому прогоним по основным вопросам которые вообще гоняют на теоретически соответственно компании и в принципе узнаем это даст нам Вячеслав вот поэтому начнем с такого разогревающего часто спрашивают Расскажите о своем опыте и опыт на самом деле интересный Вот но вкратце смотри последние 6 лет Я работаю в компании мы делаем софт для скажем так силовых структур нашей родной страны вот я делаю еще получается платформа у нас понятное дело подключается Astra Linux потому что там
00:00:58 - 00:02:23
выбор замещение все такое вот со стрельнусом я не работают желания нет когда я увидел там в общем такой Windows 95 визуально недалеко Ушел Вот значит я получается да то есть я делаю десктопные клиенты делают сервисную часть совсем чуть-чуть когда там что-то не сильно сложное лезут базу данных написать поправить допилить какую-то хранимку там ну когда опять же хранимки большие или серьезно сейчас слишком сложная там подключаю своего тела большой прошаренный вот он это дело имеет Я честно говоря больше по
00:01:40 - 00:02:55
визуальной части Мне всегда нравилось всякие кнопочки не кнопочки менюшки и прочее все делать не всегда доставляло Дикое удовольствие у нас как будто Визуальная часть достаточно богатая там и графики есть и Отображение видео и там то есть и по звуку построения сыгран Ну то есть там ну интересно как бы разные вещи есть такие вот и как-то короче я понял Куда надо расти дальше у нас все плавно переходит на веб вот я понял что javascriptypescript это несколько не моё как-то и визуально синтаксический это
00:02:18 - 00:03:21
все не нравится и архитектура но как-то не знаю использовать язык который там условно говоря предназначался что там кнопочки плясали у тебя как-то было в 90-е для написания серьезных проектов Но это как-то такое себе Вот и как-то начал смотреть Куда в общем-то двигаться понял что надо двигаться мобильную разработку мобильные разработки получается Ну как-то я на Android сильно не смотрел как-то платформу не очень близко скажем так вот мы сюда нравилась как-то визуально и как-то решил смотреть туда насчет
00:02:49 - 00:04:00
знакомиться с рифтом целом понравилось тоже хищный язык очень много это можно провести аналогии есть некая бы даже сказал определенная влияние вот языков Ну какой-то такое не то чтобы друг на друга скорее знаешь таких платформ например как сказать использую в работе чем у нас индекс декларативном стиле пишешь и соответственно подцепляешь Там две модели и прочее через контек дата контекстический на самом деле подход Ну я честно говоря сильно большой разницы не увидел и дисков мне что понравилось да сильно
00:03:26 - 00:04:49
меньше года реально там какой-нибудь дулис написать это там ну там 100 строчек кода вообще все укладывается модель данные доступ к данным Я имею ввиду модель вьюха сама да И когда все визуально красиво и темная тема поддерживается Светлая тема поддерживается как-то нет Там как бы Наведи это тоже можно сделать динамический динамический словари ресурсов Да я соответственно другой У меня также все будет краситься надо все эти ресурсы прописать разработать момент отловить их надо подметить просто все
00:04:08 - 00:05:21
вот из коробки работает но это классно при этом никто не мешает это все кастомизировать также момент отловить в темной теме было не белая Красная хорошо А можешь вообще какой у тебя опыт в айося Ну то есть что-то делал вообще работал Можно я как-то я решил В общем сделать что для IOS я решил учиться вот я честно как это Купил купил не скачал Докупил книжку Василия Усова Там две было книги про аюз разработку я прочитал и оттуда воспроизвел примеры мне в целом понравилось Прикольно вот записался на
00:04:44 - 00:06:09
куст нетологии вот начал заниматься там сколько было с конца 21 года вот потом половину курса прошел во втором году там феврале у нас произошли определенные события не будем о политики вот как-то я где-то на месте на 4 не занимался совсем вот как-то депрессивных состояний был Потом я все-таки понял что надо водить до конца сейчас я весь курс прошел сейчас я пишу диплом там надо написать кастомная получается кастомный клиент для ВК вот если предыдущая такая преддипломную работу на предложение по
00:05:26 - 00:06:46
погоде было Вот я его писал получается его и Кит Вью модель там А снеп Кит А этот фреймворк используется Яндекс погода регистрируется Ну в общем поехали получил данные сети отобразил их там типа знаешь прогноз по часам Нарисуйте график и так далее В итоге что-то я понял с помощью Китая рисовать не хочу я посмотрел что там есть 16 версии получилось Там как бы у нас не было требований в обучении торги туда я посмотрю 16 поставил Ну ладно запили Собственно как раз интегрировал слив юань вливаете вот хочу проект для выкашного клиента и
00:06:07 - 00:07:25
запилить полностью на свифтва сейчас как бы это дело активно изучаю стараюсь смотреть интересно вот много делается как бы что называется по аналогии условно там много можно общих идей Что называется писать для приложения погода написал несколько юнитов набью моделей честно Ну тут опять же надо конечно смотреть сильно глубоко Я не погружался не нашел какого-нибудь интересного инструмента по тестированию что-то типа вот есть все шахты получается библиотека до библиотека она называется Господи называется муки
00:06:55 - 00:08:24
скажем так когда ты хочешь муковые классы запилить до грубо говоря их просто настроил там с помощью замыканий Да там как должны свой такие должны знать конкретно есть протокол и писать муковые его реализации чтобы в теста их загонять и как бы Честно говоря мне этот x x тест да то есть она не порадовало что нет такого нет такого для тестирования Макин бердками Работа идет вот там может это посмотреть Ну вот надо посмотреть [музыка] погружаться сделал посмотрел понял примерно что как бы там будет будет на
00:07:41 - 00:09:02
работе задач [музыка] Ну давай я пару вопросов позадаю тебе насчет опыта работы вообще по каким методологиям ты работал работали там по скраму по комбану или у вас там свое было история нас знаешь у нас больше сейчас такая знаешь сборная солянка у нас двухнедельный спринты у нас получается есть планирование спринта Мы садимся условно человек да и оцениваем задачи насколько они там будут там поскольку мы там оцениваем Да и соответственно задача из них набирается какой-то некий скоб Да и мы соответственно это дело
00:08:30 - 00:09:46
толкаем потом из этих задач вычленяем некоторые скажем так наиболее приоритетные либо там какую-то фичу да то есть нужно запилить и соответственно у нас получается этот из этого формируется нет такой цели спринтажки потом выкатить там релиз там тогда-то понятно что на каком-то дать Мы у нас естественно есть стабильная версия продукта но там продукт он очень долго долго живут на 90 процентов состоит из Legacy Вот и соответственно ради интереса ради интереса вчера готовился собеседованию решил похвастаться написал небольшую утилитку
00:09:17 - 00:10:40
короче Она что делает она посчитала количество шарковых файлов в нашем проекте которым я работаю их оказалось 9 тысяч 800 800 штук Выяснилось что из этих файлов 980 тысяч строк программного года только на си шарпе свыше тысячи файлов заново В итоге Там миллион сто тысяч совокупности и короче вот с этим всем приходится хозяйственные дела Но конечно же не весь код я писал Но примерно скажем так где что лежит и как взять А если не знают кто знает кому обратиться Слава Богу у нас носители какие-то ключевых
00:10:00 - 00:11:16
знаний они есть приятно Вот и в общем-то проект скажем так несколько приложений несколько таких достаточно больших приложений сейчас по работе там с видео со звуком воспроизведение построение там осциллограмм вот этого да есть небольшие утилитки там сейчас была утилита построение построения стоп импорта телефонного справочника То есть была одна программа на данные скажем так одно подразделение приходили формате Excel эти данные будут читать и загонять в базу данных вот там у нас был такой программист не буду
00:10:38 - 00:11:52
называть его фамилия вот Покажи пожалуйста самый ужасный который ты видел фамилия Возьмите его Посмотрите там прям с этим на 200 строчек вот там что-нибудь вот такое по каждому чеку запускает алгоритм как происходило он программа вычитывает строчку складывается одну строчку базу получает создается условно говоря запрос на ставку в рамках одного соединения закрывается снова логинимся в базу снова создаем соединение снова делаем соединение закрывается при этом это все происходит в цикле в UI потоки
00:11:22 - 00:13:04
то есть приложение должно висеть но оно не висит Почему не висит А там есть такой костыльный метод который просто выпили до называется applications процессе знаешь как бы висит такой знаешь запустить отдельный тренда и в нем все это сделать это было не судьба и короче там в итоге сделали там сильно быстро скажем так проектировали и в итоге накидал классную реализацию ускорение было там знаешь получалось что программа 150 тысяч строк XL на моем компе когда пытался скопировать она подалась а Короче я когда переписал Ну там просто
00:12:13 - 00:13:40
не уничтожали соединение там когда ты заканчивалась там начинала падать максимальный лимит заканчивался в общем отдельный наркомания там спокойно сделали соединение сделали тренд в рамках считывает мы скажем так патч пакет записи из эксельного файла опытным путем выяснилось 500 штук и делал этот самый там есть инсерд команда есть Book insert типа пакетная ставка там триггеры не вздрагивают на базе данных и прочее и прямо но зашло короче это Было кайфово когда у тебя там код который там весил пять минут выполняется
00:12:58 - 00:14:14
там за 25 секунд это конечно надо понимаю а вообще на последнем месте работать Какое количество разработчиков было вот в каких-то командах по сути работал типа больших маленьких сейчас знаешь у нас так интересно получается у нас условно говоря проект название говорить не буду [музыка] получать 8 9 получается 8 версия на более старая написала начиналось писаться еще там было 10 которая тоже самое только по сути переводится замещение и так далее такая стоит Нет хорошей жизни но [музыка] значит там получается у нас вот в той
00:13:35 - 00:15:22
команде которая поддержка занимается сейчас осталось К сожалению только два человека два с половиной у нас один программисту там тут а команда которая переводит это все у нас дело на веппу с нами консультирует с ними Общее собрание там человек программистов на 6 трое тестировщиков и один ПМ и наверное один двое аналитиков когда как бывает супер большой команде да то есть я я не работал на самом деле мне кажется Когда супер большая команда каким-то проектом работает Да это не очень эффективно потому что опять же коммуникации
00:14:48 - 00:16:03
коммуникации у нас допустим в команде человек сколько там больше десяти получается да у нас собрание проходит невероятно долго на мой взгляд какой-то или митинг Когда он идет по 40 минут это ну вообще там обычно кратко кратко выжимка тех что ну того что было вчера типа у нас это понимаешь ты это знаешь я это знаю Ну вот к сожалению оно происходит вот так там раньше это еще дольше происходило там в итоге скажем так я еще несколько человек рассказали еще другие слушать и в итоге это все происходит потому что потом
00:15:27 - 00:16:43
просто как бы Ну назначается условно говоря там следующее не заинтересован лица уже между собой общаются сейчас к этому и подошли проблема в менеджменте наверное в этом плане есть там на Ретро типа такой вопрос не подняли это есть ретроспективы у нас есть к сожалению сейчас как бы она движется положительную сторону но пока не всегда как условно говоря это все удается достичь работал в маленьких командах тоже было дело нас там я помню в 13 году Уволился с работы очень интересно брать Вот который у тебя видел своим резюме и
00:16:07 - 00:17:42
там собственно говоря у нас были куча надо было делать и там пришлось и со сборкой мусора разобраться потому что в ряде случаев были проблемы 3264 и так далее там даже приходилось делать знаешь типа [музыка] что программа не падала Да там какую-то обработки обработки запускалась Еще одна десктопная программа она запускалась типа в режиме без окна делала свою условно говоря грязную работу да и и короче закрывалась это как раз чтобы обойти ограничение там на количество памяти типа разрядных систем
00:17:05 - 00:18:26
отдельной наркомании программистов первые наверное четыре месяца всего трое я был вот товарищ Алексей и соответственно и пуля вот Великолепный на самом деле специалист я сейчас взаимодействии с ним по работе вспоминаю очень тепло мы до сих пор хотя и вместе нужно смотреть не работает до сих пор иногда встречаемся пообедать или еще как-то в общем это сейчас на собеседование расскажу тебе не очень прилично так Ну давай ладно мы с тобой поговорили Я могу так сказать вкратце Ну так меня просили говорить комментарии во время
00:17:55 - 00:19:10
собеседования поэтому буду говорить сразу типа Во время рассказа себе но желательно Так у тебя обширный довольно таки опыт я еще рассказывать Тем более ты любишь рассказывать надо типа как-то себя стараться задерживать Попробуйте нет Типа никто тебе не будет прерывать но просто что они подумают что типа таки Ну блин что-то слишком долго рассказывать типа но как-то будет наверное немножко грубовато наверное со стороны будет звучать ты можешь кстати немножко это духом упасть какую-то тебя не слушали Да я-то готов тебя слушать А
00:18:46 - 00:19:48
ребята там не факт что поэтому тебе надо как-нибудь пробовать на досуге типа выделить основную часть которую Ну вообще типа как там посидеть вот в машине едешь там подумать о том как ты себя презентовал бы вести при этом проговорилась у меня вот столько лет я работал таких компаний в такой-то стек писали тесты команда такая команда такая работали по такой методологии потом ты говоришь типа можешь про рассказать какие-то Вот крутые истории да типа вот как мы с тобой на видео на разборе резюме обсуждали да такую историю
00:19:19 - 00:20:21
допустим рассказать но вкратце опять же то есть какие-то чтобы показать что ты парень все-таки это не пиханы пальцем что у тебя были реально там истории интересные боевые так всякое такое что так сказать чтобы тебя люди не прерывали А ты сразу рассказывал все сразу и в итоге ребята будут [музыка] что там где-то вежливо Давайте просто направлять Это я согласен на вооружение твой совет вот да вот так что ребята готовьтесь даже о себе рассказывать не только теоретической части но и о своем опыте тем более Так
00:19:51 - 00:21:06
ну что Ладно перейдем ближе уже к собеседованию Давай с тобой немножко разомнемся на таком просто вопросе что такое солит что такое вообще вне зависимости Ну какая-то сущность там не знаю делает у тебя процессе подготавливать данные для отчета и например какой-то отчет она создает и отправляет его куда-то Да И вот на самом деле три ответственности это по-хорошему похож надо сделать чтобы было Три разных сущности одна у тебя условно говоря допустим репорт процессор и репортах я бы так наверное сделал скорее всего там
00:20:32 - 00:21:40
возвращаясь забегает Дальше я бы для этого всего бы еще сделал протокол каждый сущность протоколом чтобы можно было алгоритм там создание отчетов подготовки за этих отчетов Да и отправки куда-то можно поменять сказать Вот этот принцип замещение забегая вперед на мой взгляд его соблюсти а наиболее сложно почему вот например у меня есть приложение у меня там есть структура называется структуру возвращает соответствующий Оби и там есть определенный набор палить Но если я хочу например с одного погодного
00:21:30 - 00:22:44
фреймворка перейти с Яндекс погода перейти на Open weather например или там вызов Китае был Ну мне как бы да там часть полей они установлены друг на друга но что-то чего-то не будет чего-то будет наоборот здесь как бы она условно говоря соусу до какие-то общие вещи на не такая что можно уделить но все равно что-то где-то придется Ну опять же жестко гвоздями вот второй у нас насколько было опыт открытости закрытости как у нас сказать устройство у нас открыт для изменений для расширения закрыта для изменений для
00:22:07 - 00:23:43
изменения немножко волнуюсь Может и меня направишь рассказываешь что можешь принципиально озвучил пример не можешь привести этот другой разговор Давай знаешь я с примером что я честно говоря Пока сейчас ну нет не приведу не придавать пока немножко дальше пойдем Как говорится Да а вот как раз л Да принцип замещения Насколько помню Барбара лисков мужик это или девушка вот уже история честно умалчивает на тему вот это как раз у нас есть некий класс который принимает допустим в качестве там допустим
00:22:57 - 00:24:28
например обрабатывает не обрабатывать отправлять те же самые отчеты возвращаясь к нашему предыдущему примеру и соответственно если я хочу чтобы он условно говоря там отправлял отчеты не на имейл Как это сделано изначально например Telegram Бота куда-нибудь еще да то соответственно как бы у меня сам класс для этого меняться Вот то есть надо сделать так чтобы грубо говоря это дело закрыть какую-то другую сущностью я эту сущность подменяю желательно через там используют все в качестве этому плавно перетекаем
00:23:59 - 00:25:11
условно этом к следующему следующим пунктом дата насколько л а интерфейсе Григорий выделение интерфейса Вот как раз да то есть каждую такую значимую вещь которая что-то делает в идеале на не нужно завести протокол он же протокол термина с лифта В общем-то любимом контексте интерфейс Shark javic тоже интерфейс там у меня там что-то соответственно и вызов этот вызов и протокол у меня была просто реализация соответственно для этого сейчас понял я что Яндекс бесплатно Давайте не будет пользоваться либо
00:24:35 - 00:26:04
надо посмотреть поисследовать хочется просто работала Что там у нас идет Мне очень нравится это я Часто использую что любые какие-то зависимости которые есть они должны быть явно обозначены зависимости может двумя способами свойства чтобы не нравится через конструктор класса опять возвращаюсь нашему предыдущему примеру меня есть некая сущность агрегатор Да она у меня готовит данный обрабатывать данные и отправляет данные куда-то в нее соответственно передал протокол по соответственно подготовке протокол по
00:25:20 - 00:26:34
процессингу и протокол по отправке их куда-то хочу процессинг поменять просто поменял реализацию Ну и так далее Это очень хорошо И самое главное очень хорошо читается сразу понимаешь что ему надо Что он делает да что он как бы работать ну как происходит его работа Да есть такие скажем так уже перегибы у нас есть например класс на работе называется онлайн контекст там в конструкторе сказать как бы по-другому сделать это не самое три реальные задачи исторически уже сложилось много много всего надо и он раздает что
00:26:02 - 00:27:20
есть онлайн контекст еще другой контекст [музыка] интересно происходит тогда получать Так я не знаю так немножко сумбурно про это все ответил честно говоря может какие-то уточняющие вопросы там нужно дополнительно рассказать что-то Лев Так ну по комментарию типа просолит солит вообще используют как способ разговорить кандидата как я сказал опять же То есть это в принципе основа основ то есть сказать что вообще такая соль надо типа Принципы написания кода все-таки какие-то общие которые глобально должны
00:26:50 - 00:28:02
все придерживаться не все придерживаются когда можно зачастую какой-нибудь Граф объектов может быть имеет смысл Хотя опять же далеко не факт надо опять же смотреть на конкретику что принципе Об сказал что Это какие-то рекомендации на самом деле вот да ну просто рассказываем буковки и приводим примеры если можем если приводим пример Это для вас же лучше Ну во-первых покажете лучше себя в глазах интервью А во-вторых это растягивать время собеседования которые так не резиновые так Ну что давай поближе поговорим
00:27:28 - 00:28:43
вообще типа данных где они хранятся и что к ним относятся все что знаешь так сказать Две таких категории ну и соответственно структуры у нас относится перечисление ему Да у нас относится соответственно коллекции то есть там массивы словари И множество Так что еще значимые до структуры коллекции ну и соответственно простые типы данных типа int там да был Стрим до строки вот так вроде вроде вроде ничего не пропустил Хотя может пропустил если чет меня спросить что относится вот классы протоколы и соответственно
00:28:24 - 00:30:00
замыкание пишешь замыкание которые красиво прощения работы вот значит а ну и понятное дело соответственно возникает вопрос зачем было сделано такое как бы как сказать разделение Да я честно говоря ответ на это я Мне было интересно Там когда-то я на этот счет ответ какой нашел что условно говоря мы на этапе компиляции программы можем в какой-то степени определить Да некий постоянный набор постоянно какой-то размер памяти который нам точно понадобится и это будет нас условно говоря стеком А есть переменная величина соответственно
00:29:39 - 00:31:04
становится кучей с этим получать постоянное величина данных Она работает достаточно быстро куча соответственно там где надо учиться более более сложные уменьшается соответственно работа происходит дольше Вот и Поэтому соответственно ссылочные типы мы запихиваем туда чтобы заранее не можем определить их размер Да а со структурами мы соответственно заранее размером определить можем Да и соответственно мы запихиваем стек понятно что есть исключение там например не знаю там структуру реализует протокол
00:30:53 - 00:32:07
Значит она поедет у нас кучу если гигантских размеров может вентилятор Пойдет оптимизацию тоже в кучу или там подумаешь что там с какими классом не знают алгоритм не кажется тоже может как-то и классы допустим в общем случае мне кажется оно должно работать что-то еще может хочешь рассказать хорошо Расскажи тогда давай начнем так сказать Чуть более углубляться эту историю Расскажи в чем вообще отличие классов и структур на твой счет Ну смотри у структуру в общем-то Как сказать У них есть базовые инициализатор
00:31:34 - 00:32:48
вот структуру не поддерживают наследования как раз для того чтобы окрасать можно было определить их размер запилишь наследование размер уже определить Ну может быть можно как-то но это уже гораздо сложнее вот Ну кстати вот интересный момент у классов тоже инициализатор по умолчанию и как бы собственно поэтому они там есть используются меньше процентам меньше процентов случаев я встречал входит структуры Я ради интереса вчера когда собственно утили просто взял и по проекту поиском Ни одного совпадения
00:32:33 - 00:33:59
на миллион строк на миллион строк ни одной структуры просто так исторически сложилось да Безусловно можно запилить и было бы полезно почему-то на платформе дуднет так не принят Ну и Вася не принято в тех командах где был я вот да А в лифте это как бы пожалуйста плюс опять же да то есть еще структуры они очень приятно выглядит команды выбираешь [музыка] надо будет хочу дополнительно потом погрузиться то что студии Я просто говорю свойства все свойства эти структуры вычисляемые хранимые прочее Я сразу вижу
00:33:21 - 00:34:36
значения [музыка] там Понятно тоже свои нюансы Ну вот в этом смысле проще Ну особенности свои Да соответственно у нас конструкторы раз наследования нет 2 хотя на самом деле дату Можно также подписать структуру на протокол также класс способ хранения соответственно в большинстве случаев структура хранится у нас стыки Ну так вроде вроде все сказал может быть что-то конечно упустил но ты мне что Путин наводящего после Расскажи какой механизм работает у структур при копировании А Все я понял что ты купил умирает вот
00:34:15 - 00:35:36
эта история но она по-другому называется копен райт это для чего работает штука ну там массивы например что работает я понял что есть переменная а которые типа класс есть переменная значение [музыка] и соответственно вывожу там у меня будет такой же как бы потому что ссылку указывает на условно говоря один и тот же случай со структурой у меня структуры которые есть я его поменял я условно говоря написал а равно B и у б поменял и делаю Принт А usernameprint busine у меня будет соответственно как бы два разных
00:35:07 - 00:36:43
значения если с другого типа вот я это так понимаю сейчас копия на Саймон А что массивов еще раз получается срабатывает как ты говорил но при копировать механизм работает Я это понял Я честно пока что пробил знаниях Я это понял как условно говоря когда передаешь у тебя соответственно Как сказать будет передачу Я это понял [музыка] передача по значению что ты видишь что передачу по значению происходит Ну вот смотри например у меня есть условно говоря допустим некая Как сказать простуд простой тип винтовая переменная
00:36:01 - 00:37:33
дает переменную передал метод переменным поменял соответственно нет у меня работают закончу и скажем тогда перемены которые передал метод на самом деле не поменялось внутри метода поменялся потому что там произошло копирование но снаружи снаружи исходная она осталась первозданная Потому что Потому что так это сейчас привел пример с примитивом А что с коллекциями происходит Или ты не совсем [музыка] Мне кажется Ну да да Мне просто кажется должна быть какая условно говоря А некая у нас более такой сложный тип Да условно говоря
00:37:27 - 00:38:52
должна быть у него нет некая внешняя часть которую мы работаем Да и которую мы Передаем Да а внутри должна быть организована Как сказать организован как ссылочный тип Потому что если массив присвоил получил в переменную потом положил в переменную B Ну там то есть присвоил А да там и тогда чтобы не было у меня каждый раз этого копирование всего массива это энергозатратная операция соответственно [музыка] у меня соответственно это будет происходить и при этом массив не меняет он будет туда передал получается по
00:38:32 - 00:39:47
ссылке А если я его меняют добавлять какие-то элементы то соответственно у меня будет происходить передачи по значению Слушай ну ладно я сейчас я немножко путаюсь в этом деле немножко Ну ладно хорошо хорошо чуть-чуть поговорим в нашей коллекции массив с Edition вообще Расскажи что такое Ну в чём они хотят вообще давай смотри условно говоря массив это у нас упорядоченная коллекция объектов которые скажем так могут быть не уникальными вот словарь это у нас не упорядочная коллекция объектов которые должны быть
00:39:12 - 00:40:37
уникальные по ключу вот в частности ключом может быть насколько я помню скажем так сущность которая поддерживает протокол hashional простейшие и так далее и соответственно множество Да это в некотором смысле коллекция типов ключ значение коллекция ключей набор набор уникальности причем не упорядоченная в него добавляя объекты и не всегда будет это конечно интересный [музыка] на самом деле тоже неупорядочная коллекция если я в дикшин или услуга там добавил там условия A B и C Да и потом пытаюсь протеировать
00:39:59 - 00:41:37
вот это тоже интересно Шарка такого нет все в экшнере есть давай ABS Да он не ABC и выводы может быть по-другому а может прослушал множество Какие элементы но любые могут быть элементы или какого-то типа определенного смотри элемент элементы должны быть уникальные условно говоря множество поддерживает элементы которые реализуют интерфейс подписан протокол [музыка] множество ключей парк ключ значение уникальный секс поддержку уникальность несколько более широком смысле значения там только ключ соответственно
00:41:03 - 00:42:33
что хочешь [музыка] смотри у нас вообще как язык типизированный или вообще Ну как вообще у нас строго типизированный Да он строго типизирует Почему я бы сказал прям строго строже некуда На мой взгляд хорошо потому что ну я допустим знаешь вот интересно я просто как я сам немножко обжегся какое-то время столкнулся понять была такая у меня есть переменная которая типа да был у меня есть переменная B который типа значения там 2,2 другой значение 2 я говорю C равно А плюс 42 то есть произойдет не явное
00:41:51 - 00:43:22
приведение типов не следует ничего есть эта проблема работает [музыка] [музыка] все получилось Смотря с массивчиком если подумать так Могут ли у нас разные типы данных лежать массиве могут Почему нет Тут надо просто как сказать [музыка] Я бы знаешь сказал как эти данные могут быть если смотреть какой момент если они условно говоря реализуют как это имеют имеют общего общего типа например есть какой-то базовый класс не знаю родители вообще да У них есть у него есть там Наследники там все сквер какие я соответственно делаю
00:42:41 - 00:44:30
массив Типа так далее могут быть приведены условно приказывать более частное более общем соответственно захочу в массив там этот самый вставляет еще я знаю не помню надо либо тогда мне сделать массив И не или сделать честно больше поэтому мне это нигде не всплывала более в широком плане берет Наверное скорее всего это только ссылочные типы данных это значит можно быть Наверное это вот Ну соответственно насчет массивов мне кажется для таких как для всех современных языков характерно так и есть Так но вообще Ладно с блоком по типам
00:44:07 - 00:45:58
данных разобрались тут в принципе все хорошо было так что разберешься почитаешь отлично Там могут спросить еще протокол хэшбэл потому что мы все равно озвучили и типа если высокий уровень Никита Чем могут спросить как он вообще работает типа нового Кстати может знаешь как вообще работать протокол соответственно тебе там я протокол не реализовывал я просто расскажу как будет Из своего опыта А если взять допустим извиняются с лифтом вот я все равно его люблю вот там у каждого там все собственно говоря сущности они
00:45:20 - 00:46:34
приводимые к общему и соответственно этот класс ОБЖ он [музыка] у него там есть несколько базовых методов у него есть соответственно туринг есть хэш-код Есть Ну из таких публичных как публичный контракт предоставляют и соответственно почему это как раз Собственно как то есть и там вот интересно нюанс есть что если сравнивает объект и говорит чувак еще я долго не мог понять зачем так сделано так было потому что когда происходит сравнение там используются и прочее сначала сравнивать если решила объектов
00:46:09 - 00:47:28
как бы разные он идет дальше а если они одинаковые то тогда он вызывает метод это типа знаешь для больше для производительности для покушения Не дергать более тяжелые соответственно здесь хорошо было наверняка должен реализовать что-то подобное там нужно что-нибудь в этом или просто там свойства хэш Я честно не знаю просто чтобы оно должно быть Вот так если соответственно как бы у тебя должна быть какая-то какой-то алгоритм с помощью которого ты посчитаешь функцию которая будет использована соответственно калибы
00:46:53 - 00:48:03
в качестве ключа для словаря либо там соответственно при использовании множества Да там сет и так далее мне думается так должен быть но вообще да примерно так есть но там есть вообще в принципе механизм как вообще считается хешабол вот я хотел спросить у тебя Ну зачем было хорошо смотри у нас есть класс Да у него Триполи есть Ну допустим это класс человек у него есть имя Мобильный телефон строка без разницы что число какой-то и допустим более его значение там мужчина женщина мужчина Фолз женщины Вот
00:47:30 - 00:48:55
соответственно Как ты думаешь Класс вот если бы у него вошел имя номер пол и класс пол имя номер Они давали одинаковый хэш или разный при одинаковых значениях полей интересно Я честно да еще небольшой пометку сделаю ребята которые типа не знают за хешивал почитайте типа я тоже пересчитал бы да я помню точно что такой вопрос могут спросить вот я примерно помню на него ответ но сам не совсем помню как именно там считается почему-то кажется что наверное должен быть разный не знаю почему мне вот интуитивно интуитивно кажется что это
00:48:12 - 00:49:41
самое должно быть разные Вот наверное причем наверное по умолчанию не знаю Да если ты переопределяешься потому что там порядок очень важен типа ну именно вращать этой истории Вроде как мы разработчика какая разница в каком порядке идет Да но компилятору не все равно на самом деле там он типа считает можно расположить что у тебя будет хаш меньше можно расположить Так что тебя будет хэш больше но ты такой Ну ладно вот ну типа еще в комментариях поправят мне самому будет интересно почитать если я буду неправ Но по моему ответ такой
00:49:02 - 00:50:16
же кажется что это самое Все логично на самом деле так чуть-чуть Так теперь мы с тобой проговорим вообще про управление объектами Давай расскажи мне что вообще как у нас с этим как управляется память как она этого объекта любого Там и так далее насколько насколько я помню Сколько шагов условно говоря что ты вызываешь конструктор происходит скажем так скажем так система определяет Сколько памяти нужно твоему объекту это память выделяется Да ты объект используешь потом соответственно это память а то есть объект когда
00:49:49 - 00:51:18
условно Казан количество сильных ссылок на него равно нулю и объект выходит условно из зоны видимости Да и своего то соответственно уничтожается вот там есть вот я сильных подробностей не лез там есть нюансы вот эти вот сайты был там эти когда там век там как сказать немножко по разным объект сильные ссылки есть достаточно Просто если на него и слабые ссылки то немножко посложнее будет нюансы условно говоря что у меня сильная ссылка счётчик ссылок на единицу увеличивается слабая ссылка А это счетчик не увеличивает то есть
00:50:35 - 00:51:51
соответственно когда на объект есть слабая ссылка Да я попытаюсь обратиться к этому объекту У меня этого объекта может и не быть и собственно говоря Чувак у тебя объект указан как слабая ссылка на него пожалуйста вот у тебя соответственно это опционал что-нибудь придумать либо разверни его как-то либо там косы там по-пацански форсан рэп и тогда может осуждаю и соответственно есть Как говорится ссылка она бесхозная по большому счету то же самое что и как я это понял да Но если там объект может быть равен и соответственно
00:51:13 - 00:52:27
как бы у тебя приложение может упасть когда использовать когда использовать она я понял так что ну прям реально какой-то Граф объектов уверен что у тебя родительский объект если его нет то и дочернего объекта как бы тоже не будет Ну они ну какие-то такие вещи Хотя я признаю проектах Я понял что я использую я там написал строчку вот я на тему дела отвечает соответственно механизм под названием Arc да то есть там автоматика референс коутинг автоматически подсчет ссылок Да вот там насколько помню всего
00:51:55 - 00:53:06
другой механизм там референс каутинга что ты как вручную вызываешь использовать такой хордовый вот вообще механизм по большому счету их 3 либо ты вручную это делаешь либо соответственно более скажем так умный механизм либо соответственно такая штука более более сложная более громоздкая например позволяет избежать таких проблем которые ты существуешь объекта ссылается счетчик сильных ссылок у них у каждого появиться значит они даже если за сколько уничтожены не будет проанализирует он анализирует графа
00:52:33 - 00:53:58
объектов и соответственно более менее стараюсь у меня не было такого объекты друг о друге все знают назвал что есть такая штука Да мне кажется мне кажется если есть в каком-то таком знаешь сказать примитивном виде вот не должен быть Наверное нет Потому что он же там с этим как он работает типа разные на самом деле алгоритмы если реализация бывает что условно говоря один процесс запущен отдельным процессом в рамках операционной системы бывает что у тебя запускается отдельным потоком в рамках предложения
00:53:19 - 00:54:45
[музыка] это все дело зависелону менялась там разные случаи Да и там отдельно всякие поколения этого сборщика мусора Да там снова у тебя там три поколения 012 и там есть большие объекты они хранятся так уничтожаются так и прочие объекты с финализатором соответствующим образом у тебя процессится и в общем там есть приколы надо а про Марсе ничего не знаешь не сможешь рассказать что-нибудь Я единственное что это больше [музыка] соответствует это когда память управляешь вручную ты объект Не использовал Да условно говоря они
00:54:35 - 00:56:06
соответственно вручную вручную потом к нему обратился Но у тебя все упало потому что я это понял возможно частично [музыка] Так подожди держи ссылки на тот кто его создал объект Ну смотри у тебя есть не знаю класс А да класс юзер да Ты в нем не знаю написал какой-то метод который создает например сессию здесь создал Вот она у тебя есть класс раз я кажется системная не знаю там какой-то таблицы таблицы где условно говоря прописано что у меня есть объекта на него ссылок наверное так хотя Слушай хороший
00:55:20 - 00:57:00
как она называется не знаешь честно говоря не знаю Ну какой-то какой-то прибыл какой именно не знаю такая что касается в детали прямо честно говоря не расскажу скорее засыплюсь но в нюансы говорю никому надо это надо вникнуть Ну хорошо давай тогда дам комментарии закончим этим модулем да Но короче ребятам которые хотят на более высокие позиции там то есть металл плюс Синьор надо уже желательно рассказывать про мр-си Ну как желательно нормально рассказывать то есть там какие методы есть что кого-то или спол что
00:56:37 - 00:57:53
такое на зомби там всякая фигня Можно ли использовать мрсивте всякое такое по сайту сайты было Надо всем знать это сто процентов Что такое что он держит когда появляется то есть вот это буквально не знаю пять минут изучения но как бы вопрос будет закрыт такой подковыри когда так сказать кто держит ссылки на объект Ну вообще там когда только сильные ссылки на объект или анонс держит объектах на себя когда появляется уже Вик ссылки тогда все ссылки переходят на сайт Table на сайт Table сайт был держит У нас Strong
00:57:27 - 00:58:45
vikon ноут Да все три ссылки при этом у нее есть еще четвертая ссылка на сам объект объект держит ссылку на сайт Table в контексте многопоточности наверняка могут спросить а вот у тебя есть потоков работы я выяснил для себя что в том потоке где счет на этот объект у тебя становится Так это что у нас это мы закрыли с тобой блок памяти получается что погнали поближе так сказать Расскажи мне вообще про жизненный цикл приложения все что у нас вообще по нему состояние есть самого приложения наш кита Интересная история с
00:58:06 - 00:59:33
ним приложение скопирован в памяти его процессор исполняет все хорошо вот приложение работает мы с ним поработали приложение закрыли как бы все хорошо сценарий условно пользователю поступил звонок телефонный Да и соответственно приложение как сказать будет у тебя Состояние ты же можешь еще вручную свернуть здесь я как бы честно говоря особо на тему такой вопрос интересный жизненного контролера я еще что-то могу рассказать здесь приложение Ну наверное как бы что она у тебя Active Да она у тебя там
00:59:14 - 01:00:30
грубо говоря и не актив Да там не активно там или как-то что-то такое должно быть и ты соответственно эти состояния переход в них можешь каким-то образом в процессе насколько [музыка] в первую очередь более детально разбираться [музыка] вот так но такой краткий вопрос но по нему комментарий в основном-то знать название примерно их да Там они дубли Ну там freground innecti background innective то есть и потом активно не активный активный активный Да там всякие приколы в общем к этому меня кусты было это то
01:00:04 - 01:01:19
что если есть ребята что пользуются там телеграмом либо любой соцсети на самом деле но не везде пишут Когда вы что-то отправляете к это большие файл вас Ну в телеге уж точно просит типа не закрывайте телегу чтобы она работала чтобы загрузился файл потому что идет приоритетом скорее всего и система берет и прибивает 30 секунд у вас просто ну загрузка кажется вообще там еще у меня история был типа что там работал одним небольшим стартапом и там у нас была разработка этого алгоритма короче считывания звука в
01:00:53 - 01:02:24
бэкграунде то есть приложение сворачивается Да мы включаем там ВК музыку допустим слушаем ее и вот и приложение подсчитывают что ты слушал музыку какое-то количество времени и вот получается приложение считывала буквально реально 30 секунд и все ты против это ничего сделать потому что это называется iPhone это iOS мы правильно чтобы не загружать систему то что все время плавника работала Ну типа тем более ребята что пользуется активным телефоном типа они просто так конца дня так сказать недавно запущенные там у вас просто
01:01:58 - 01:03:03
здесь приложение открыты все нормально работает вот благодаря этому механизмы работает всё такая история [музыка] расскажи какие методы жизненного цикла контроллера Ты знаешь какими пользовался для чего я пользовался loadview для соответственно выбирая дело его до для того чтобы конструировать в ухе Да и как бы ну и соответственно Сета пилы Да там соответственно свойствах соответственно в виде блок у меня в их загрузилась там И как правило [музыка] будет скрыто ну и соответственно будет показано соответственно Уже
01:02:30 - 01:03:55
показывает ну и соответственно как бы их убираю обратил интересное внимание что когда их выбираешь надо обязательно базовую реализацию иначе будет иначе будет здесь знаешь вот оно как сказать я допустим вот в ряде случаев когда определял [музыка] базу реализация чаще всего наоборот не требовалось по таким знаешь это опять же говорю что здесь вызывать не надо вызывать непонятно не очевидно и прочее как бы надо И в итоге вызываешь вот а я как бы Вроде я переопределила нифига не показывается я такой я реально сижу и
01:03:30 - 01:05:06
такой и туплю понимаешь сколько там ну там год назад было первый раз первое положение запускаю все по удалял из этого из проекта всякие там хочу чисто вот покрасили в красный цвет там ничего нет пишут background.ru запускаю все как пиляется черный экран Что случилось Ну как бы знаешь начиная там смотреть Там и так далее подсказать было в итоге допёршу там в ряде случаев да что он пишет Везде где смотрел и здесь базу заработал вот это как бы понял понял только или как даже Какие ты знаешь чем этот
01:04:28 - 01:05:55
[музыка] исчезнет когда соответственно тебе кто-то позвонил Ну там пользователь свернул приложение объявил соответственно и соответственно вьюгид Дезертир по-моему Так он называется честно говоря сейчас могу в терминах точно использовал когда период положение [музыка] случаев хотелось сделать красиво там насколько помню Еще должно что-то быть но их я не трогал [музыка] такой методе слышал ну когда не скажу но а если Ну что он вообще делает Так подожди у тебя Ну я уставлюсь это что по названию у тебя организация а то
01:05:13 - 01:06:57
есть там не знаю расположение там элементов Короче когда он должен вызываться наверное должен называться перед вьюгидлоут Ну потому что суть место не работал дело не имел честно скажу я про него слышал но трогать вот именно как бы не доводилось ты можешь слышал еще а двух связанных с этим методом методами Ладно короче момент [музыка] чем отличие от но этот три метода У нас есть в чем их отличие как интересно Мне кажется да здесь смотри один У нас условно говоря а производит безусловно организацию наших юг а другой должен По
01:06:22 - 01:08:04
какому-то условию Да соответственно если надо название доставляет Вот Но не скажу это надо мне кажется может быть связано что-то типа из разряда повернулся там допустим экраны как это можем до обработать там ну что что-нибудь такое Да там не знаю Ну вот какая смена ориентации не доводилось здесь надо исследовать я как будто я тебя Да ладно давай тогда Следующий вопрос какими-то способами вёрстки пользовался ну как как верстал так сказать обычно Слушай я поначалу поначалу Да только до совсем просто
01:07:41 - 01:09:02
открыл исход Я понятно дело залез в сторис смотрю 80 это кнопочки менюшка Давайте подобавляем по нажимаем плюсики посмотрим еще получится да то есть тот же усов например да он там сториборды пожалуйста как бы это дело потом у нас как сказать нетология был когда там был курс как он про хранение данных там преподаватель Александр преподаватель он чисто вот мне честно говоря понравились не сильно да то есть когда какие-то простые вещи сделать как бы все хорошо Вот Но если ты хочешь что-то какие-то усложнения не
01:08:38 - 01:09:56
знаю там добавить тени или добавить картинки скругления тебе соответственно надо работать а-а storyboard пошел мимо и тут получается так сказать На мой взгляд некая нарушение вот размазывания логики У тебя есть в Оренбурге и вроде как тебе кажется что ты вот открыл и видишь вот то что как бы будет на самом деле но нет ни фига подобного Да потому что это могут быть на кнопки какие-то там условно какие-то эффекты накладываться дальше это может быть я в итоге там почти все свои какие-то примеры я делаю программу для полный контроль все
01:09:17 - 01:10:28
собрано в одном месте да имеет опустить понравится больше да несколько больше получается чем когда ты на стуле бардак это дело все фигачишь но как-то я к этому моменту подошел что парадигму условно говоря Китай наверное все таки мне ближе так а какими архитекторами пользовался Слушай ну на свифте понятное дело пользовался nvc Да как он месив ее контроллер Да его еще называют Вот ты знаешь она на самом деле в таком же примерно ключе это же архитектура используется вот а там раньше очень активно на шарпах Да когда активно
01:09:52 - 01:11:12
использовалась технология Соответственно по большому счету вот Behind который тот же контролер свифтов вот по сути тот же самый паттерн грубо говоря вот сейчас на работе дата У нас есть проект который там большую часть идет просто огромное количество тысячи но не тысячи моделей и соответственно мне такой подход очень нравится представление есть [музыка] именно само представление данных есть некая логика представление данных Да и соответственно какой-то соответственно то есть вообще в написании кода
01:10:41 - 01:12:15
Ну тут знаешь я как сказать а могу где-то в названиях условно говоря могу что-то просто не знать потому что не приходилось до условно это делаю исследовать Ну понятно что есть всякие там сингл Да там пользовался и прочее жарко на музыку даже проще организовать чем свифте ты просто класс делаешь статические На мой взгляд это зло как раз именно потому что ты его втыкаешь везде как бездумно Да и как раз этот принцип [музыка] нарушается по полной и то же самое можно сделать там обычно Шарик и прочее
01:11:45 - 01:12:58
используется я своих работах старался эти вещи закрывать протоколом а в реализации для протокола я писал класса Bird где использовал чтобы нигде ямы вот так вот не использовать понятно что там в юайтете очень много построено на делегате тут я познакомился с паттерном делегат в си-шарпе честно говоря так сделать можно нечто не мешает но там почему-то такого нигде нет ну я может конечно где-то ошибаюсь чего-то не знаю понятно там бы Скорее все было бы сделать какая-то Да там было бы интерфейс были
01:12:21 - 01:13:37
бы какие-то события подписываешься и соответственно у тебя загрузилась Да и ты соответственно события каким-то образом реагируешь Да кстати получается пожалуйста что еще фасад когда для какой-то сложный графа объектов свою это дело [музыка] понял Так Ну хорошо хорошо так раска Давай сейчас это вот мы с тобой говорили про яйку А ты знаешь в чем отличие you areview yi Windows и лейра нашего всей layer насколько я понимаю у нас идет Какая штука что есть как как помню каким-то образом взаимодействует с
01:13:00 - 01:14:51
экраном iPhone и соответственно эти жесты должен кто-то обрабатывать я честно говоря не помню точно какой последовательности там происходит поисков рабочих которые сверху вниз снизу вверх сверху вниз сделано возможно снизу вверх Не помню там происходит и соответственно находится нужный метод кстати говоря надо посмотреть [музыка] Да на респандерчение так получается ты сказал про порядок Но вообще хорошо какие там основные методы есть как еще в принципе этот процесс построен как он работает когда я просто думаю как
01:14:34 - 01:15:59
на самом деле Да как Наверное знаешь вот если брать какие-то даже независимо от платформу тебя происходит какое-то нажатие дата мышкой по экрану пользуюсь происходит некий метод кстати говоря насколько называется Тест и соответственно у тебя этот метод можно определить там один из кейсов такую штуку читал правда что типа у тебя есть какая-то маленькая маленькая кнопочка и конечно называется попадать и вот можно можно определить и соответственно попадания Да а соответственно хит-тест да Ну где-то наверное Может сбился может
01:15:23 - 01:16:59
ими сейчас как-то поправишь направишь это да как Он построен получается ну сам процесс но механизм работы нет я смотри я это понимаю так пользователь по экрану мы ищем responder и соответственно я это понимаю контроллер кнопка так Ну я соответственно взял как правило там контроля будет это дело работает наверное есть как раз Когда назначают этого самого Кто где На каком В каком месте мне найти обработчика вот этого вот нажатие не я тут понял так Но тогда Возвращайся к вопросу отличие в йоуэра и
01:16:24 - 01:18:02
Windows знаешь чем у них отличия Ну вот как раз он не является как сказать не принимает участие в республике по визуальной части Да а Вью это как раз участвует навести красоту Да как раз остальные вещи Но это как разделение ответственность хочу красоту сделать здесь душа одеваю Windows [музыка] знаешь хороший хороший вопрос вот суши не скажу честно говоря как-то так знаешь Винду просто знаешь там маяки инвизе был вызвал Да и дальше пошел контроллеры фигачить [музыка] такие самые прям насущные вещи смотрю А
01:17:29 - 01:19:05
что как бы рядышком валяется я как бы пока чисто где-то руки не доходит проблема всех условно говоря вникается погружается вот не скажу за его попробую мне кажется как раз здесь типа не знаю честно говоря Вот врать врать Windows правильно Да конечно ёшки Windows получается если Windows вьюшки наследство но о чем сказать прикол это надо смотреть это надо смотреть Это я честно говоря не погружался если так говорить то Я видел это по сути надстройка над ее вьюшкой специально для того чтобы работал ты сказал что
01:18:42 - 01:20:17
вот эта история этого не надо поэтому это надстройка чтобы содержать наши другие вьюшки какой протокол на что она реализует протокол лампочку протокол будет какой протокол реализует вьюшка для респандерчейна как интересно же хочется зайти и посмотреть Мне кажется какой то она является наследником каком классе собственно либо это же является протокол либо это либо это протокол либо это классно замешано иерархия вот этих Мне кажется такое должно быть действительно раз получается немножко [музыка]
01:20:04 - 01:21:35
Главное отличие от layer то что я ее у нас имеет реализовано умеет нажатие благодаря этому протоколу я респандер вот так так сказать да как это как шаг получается что такое у нас Lazy приписка Это насколько я могу судить Да это как сказать есть такое На самом много таких языка программирования инициализация то есть мы лично инициализируем один раз момент первый момент не сразу да Когда у нас программа стартовала А в момент обращения к этому чему-то соответственно обращения это значение но кэшируется
01:21:04 - 01:22:33
потом уже раз отдается тому кто его вызывает кстати говоря вот опять же забегая секция пишу что-то типа [музыка] там через такой как получается замыкание и как раз таки обращаюсь время один и тот же возвращает объект [музыка] так А смотри а для чего вообще используется Lazy То есть если помимо такого функционального уже знаешь не думаю это для того чтобы Как сказать чтобы было у тебя оптимизация вот оптимизация скорости оптимизация до какого-то такого чтобы может быть как-то нагрузку по инфляции
01:22:06 - 01:23:45
объектов Да как-то немножко размазать по времени что-то такое Просто я когда использовал именно эти да то есть шахты там есть конечно как сказать есть прям целый как то классный параметр принимает там еще что-нибудь но там это появилось версиях А когда этого не было я писал Если какая-то штука равно то тогда про нелюсь пожалуйста Вызови ее инициализатор и потом типа дальше после этого я писал литературу Таким образом у меня получается была проблема что приложение стартовало достаточно долго потому что там
01:22:58 - 01:24:19
вызывалось тут как-то это все получалось что они сразу не нужны и в итоге вот так [музыка] получается мы с тобой так это был первый блиц вопрос еще что у нас такое скейпинг у замыканий слушать Это вопрос мне нравится как я это понимаю тебя есть параметр функции Это чисто как Чистой воды как это как я понимаю синтаксический сахар что ты когда параметры Да а параметры которые вместо escapping пишет что замыкание сразу А можешь соответственно как бы просто замыкание где-то объявить его туда туда присвоить
01:23:50 - 01:25:22
поиск Windows Ну как бы там очень много в сети работать сейчас когда его там создаешь его там красный Вот она обозначает вот такой момент так хорошо Мне понравилось знаешь кстати интересный интересный момент мне я могу ошибаться конечно думается что это вот своего рода некий такой синтаксический сахар на тему того что вызываешь Она проходит асинхронно и потом туда передается замыкание так вот и получается Осинка Вы когда пишешь да ты сначала ведешь Вот это и выйтишь а потом вот это замыкание просто пишет следующую
01:24:43 - 01:26:11
строчку выйдет Они разворачивают как раз вот это вот эту конструкцию Ну мне так думает могу ошибаться вот может быть Ну так какой-нибудь вопросик задать а вот такое редкий вопрос то все же что такое дефер вы слушали Я так понял что дефер да это что-то типа как-то насколько отложить Да Слушай ну это грубо говоря есть какой-то Ну я честно не пользовался не пользовался этим ни разу свифте вот знаю что оно есть мне думается что наверное это как раз вот как-то типа механизм отложенных неких вычислений У тебя есть
01:25:41 - 01:27:05
некая зона видимость некий скуп ты что-то делаешь операторы дефер Да и она будет вызвано после того как у тебя закончит отрабатывать функции При этом если ты несколько этих дефера сделаешь сколько я помню А там какая-то интересная очередность их вызова будет Вот они будут устанавливать есть сначала вызвал defer а потом б потом цель когда они тебя будут функции вызывать насколько [музыка] эта конструкция нужна как-то я все время входился без неё Вот и как-то и в ходе проектов которые я смотрел Да я честно
01:26:30 - 01:27:49
говоря не встречал знаешь как операция операторы [музыка] нормальные используют Мне кажется здесь что-то такое конструкция ну вот стал я это использовать но не знаю надо опять же смотреть [музыка] Давай с тобой тогда пойдем ближе к ногу по точке наверное тоже немаловажная тема которую в конце [музыка] по точке вообще все время некотором смысле с коробки были доступны 3D Да ты создаешь полноценный поток на уровне то есть приложение стартует там все это не выполняется какая-то работа и все дела потом соответственно в шарпах появилась
01:27:13 - 01:28:56
такая штука китайский Да taska это как бы что такое это некая обертка над а неким пулом системы заранее готовый потоков которым ты передаешь так называемый Я так понимаю что по этой концепции работает на Гранд Центральный часть тоже приложу стартует есть некий поток в котором ты передаешь работу условно говоря ты можешь в очередь положить и не факт что они выполнятся на одном потоке Хотя может и выполнить на одном а могут и на разных вот это вот как раз вот она и есть вот да то есть Ну соответственно также точно помню в iOS
01:28:42 - 01:30:09
ты также там есть [музыка] там такие более там как-то их можно всячески использовать Хотя это не рекомендуют и говорит что типа вот надо использовать Гранд централ диспачо пожалуйста юзайте его и будет вам счастье Ну так сейчас появились новомодные синковать это опять же как бы я говорю что это вот языки друг на друга смотрят что там берут и используют это очень здорово на самом деле не знаком с реактивной парадигмой правильно не доводилось тут ты знаешь я честно говоря я как-то немножко пытался
01:29:28 - 01:30:35
в это дело въезжать что условно там Мы представляем объект не как там набор там свойств А как условно говоря а поток неких событий исходящих Да и мы с этим типа работаем Ну как-то не совсем не совсем я эту концепцию понял А может быть знаешь может быть я её использую но просто не понимаю что это реактивное программирование Понимаешь [музыка] Может быть и такое просто праздник замыканием в шарпах это как бы пожалуйста те же там в модели я ходи Используйте как я а-а работать связка модель у тебя модельное свойство у тебя реализуют Ну
01:30:18 - 01:31:38
там интерфейс да здесь получается подписан на протокол называется А у которого есть на самом деле у него есть события в которую ты передаешь аргумент название свойства которое у тебя поменялось в модели и когда ты воевай ну в разметке прописал биндинг на это свойство Да а соответственно ты это свойство где этот программа поменял у тебя стул он против течения юань когда-то дата контекст присваиваешь А вот сквозь этот контекст присваиваешь платежную какой-то объекту смотрит это Это что-то что ты присылаешь
01:30:59 - 01:32:08
реализует интерфейс антифайбер очень реализует О'кей значит подписываемся на Вот это событие там всё есть интересные моменты когда могут быть моим религии с этим возникать соответственно таким образом происходит у тебя у тебя интерфейс обновляется благодаря тому когда у тебя меняется Здравствуйте обсердие то уже Да всё уже поближе сейчас они любят А как бы ну как бы сделали это вот очень-очень близко как бы участвовать только начал погружаться мне это очень нравится я смотрю прямо много всего знакомых такого красиво да
01:31:37 - 01:32:44
вот это вот это является ли это реа программировать как бы да у тебя Да давай с тобой Ладно вернемся к святому это так Простите я могу углубляться долго Да просто все что же есть rexit Поэтому я и спросил про Ну ладно хорошо Ну что сиди давай пока помню есть соответственно зависимости от они могут их Название не помню соответственно больше процессорного времени на это будет уделено соответственно нас очень бывает [музыка] Ну как сказать асинхронно Я бы сказал или параллельно наверное асинхронно
01:32:11 - 01:33:43
пусть она синхронный параллельно немножко это касается разные понятия Да вот это как сказать это один из способов реализации параллельности иллюзии параллельности если выражаться и соответственно очередь я положил в руках если я положу это не факт что последовательности [музыка] вспоминается аналогии опять же с этими типа упорядочные неупорядочные массивы что-то такое что-то похожее между всем этим делом есть да Так что еще Ну а очереди Я так понимаю они как бы маппятся на вот этот вот который предоставляет система
01:33:37 - 01:35:10
и потому Apple и не рекомендует использовать потоки напрямую потому что система вроде как типа лучше знает использовать потом свободен кто занят Типа она типа будет оптимально назначать работу на вот эти вот потоки которые тебе дала система когда стартовал приложение Ну я это так понимаю Ну хорошо а чуть Более точные инструменты типа для синхронизации процессов и ты знаешь Да счётчики понятно то главный инструмент но там же есть опять же всякие так сказать оболочки Я тебя понял Так сейчас подожди
01:34:30 - 01:35:45
дай подумать примите вы синхронизации на всякие блоки меню такси Честно говоря я с этим работал когда-то очень давно и работал чуть-чуть это было на сейшельке как раз когда я работал в том самом стартапе по обработки изображений этот грубо говоря А может выполнять данный конкретное время только один поток один поток него зашел он выполняет остальные все потоки и соответственно критическая секция кстати говоря опять ждал вот эти будет может возникнуть один поток ждет пока второй поток закончит работу пока первый поток
01:35:10 - 01:36:37
захочет работать метафора из жизни четыре автомобиля ва и все они ждут я должен пропустить справа никто не едет Да в этом смысле я бы здесь знаешь сказал бы такой момент тоже если опять же сам автомобилиста очень нравится я бы метафору провел есть 2 параллельных дороге на которой на каждый из них допустим два перекрестка 3 светофора и поехал я и поехал мой товарищ на абсолютно одинаковой машине Мы с ним вводим абсолютно одинаково и сначала я проехал Светофор а светофор светофор мы с ним на следующий день такие
01:35:57 - 01:37:19
попробуем я проехал Светофор А он такой на перекрестке все свободно ABC Зелёная волна послезавтра наоборот у него там не знаю Приехал президент всю дорогу перекрыли он вообще проехать л я уже проехала Я понял и соответственно Здесь также у тебя есть два потока они грубо говоря общий счетчик Да и как они там будут не угадаешь А как тогда вот решить проблему Condition думал об этом Слушай ну я не знаю Ну опять же не знаю был там блокировка не блокировка тут как бы но приводи название инструментов с
01:37:00 - 01:38:24
помощью которых можно решить эту историю вот блокировка до чем блокировка Хороший вопрос Честно говоря знаешь я вот в лифте на вот этот уровень не погружался но в принципе ты называл до этого я просто я просто я знаю что они грубо говоря [музыка] Светофор а проехал Я жду пока есть соответствует я проехал соответственно [музыка] замедляет работу но как бы гарантирую то что мы будем проходить получается вот Как сказать более-менее равномерно а каждый свой участок пути наверное я бы наверное сделаю так
01:37:45 - 01:39:19
начались семафорта сказал ну да ну да но ты еще там принципе я же говорю ты называл вариант решения от Lock тот же самый Да замок Я говорю я не знаю отправить не пришел ответ Я хочу что-то сделать в интерфейсе я соответственно беру у меня есть [музыка] Я на главной очереди исполняем а соответственно Вот это дело обрабатываем таким образом понятно что там есть более сложные взаимодействие Честно говоря [музыка] я писал для обработки изображений соответственно а сколько вообще активных потоков Может
01:38:43 - 01:40:06
быть у нас я не помню было небольшое количество совсем маленькое могу ошибаюсь уже мне кажется самой операционной системы раз и соответственно от того о состоянии этого приложения там активно но ты сейчас пользуешься или ты его там условно говоря там свернул куда-то Вот как раз вспоминаем Наш кейс на тему там телеграмма дата говорил там и вот Конечно я была предположила в первую очередь Именно из-за этого вообще нет там там именно вопрос активных потоков он больше Ну как ты я сейчас привел пример типа
01:39:57 - 01:41:18
сказали отнести два больших пакета с магазина отправили маленького мальчика парня и мужчину чтобы дальше нести вот собственно и система разные бывают поэтому там От количества ядер то есть мужчина больше всего яйца с тестом больше но больше может сделать естественно больше активных потоков теста сколько ядер столько потоков такая группа Слушай я про них читал но не использовал поэтому не знаю я еще знаешь еще еще сразу скажу я не сопереживания соответственно тут тоже дело как бы не доводилось иметь
01:40:50 - 01:42:13
вот здесь как бы мне кажется синхронизация что такое работа выполнять можно что-то в этом духе Не знаю не это не использовал слышал но не использовал но она спрашивает так так Ладно просили еще в комментариях типа отвечать на вопросы такие Типа если это кандидат отвечает короче спать группа такая у нас сущность которую запихивается таски и она у неё есть метод Ну типа которая срабатывает после того как все таски которые поместили в группу закончились группы допустим праздновать Новый год папу когда с магазина мама сработает Вот
01:41:53 - 01:43:23
мама папа приехали тогда я просто Новый год я понял так что у меня был лист лист я в него добавлял таски потом в качестве там есть расширение по коллекции досок типа когда он все И ты передаешь типа когда вот это всё выполнится ты вжух не мне пожалуйста вот это вот есть такая история Мне кажется это ну видишь не использовал да А давай так смотри у нас попробуем такое танкогране походить смотри у нас есть асинхронная очередь правильно Да но мы хотим методе Да у нас идет метод эти добавления нескольких тасок Ну
01:42:40 - 01:44:13
вот так лучше делать конечно допустим у нас несколько многопоточно так сказать этих добавляем несколько в разные очереди добавляем в очередь [музыка] синхронную 1 до 1 очередь синхронная 2 5 строк очередь асинхронно что сперва сработает асинхрон или синхронное внутри А ну а как происходит вообще добавление асинхронного но асинхронной тоски в потоке такие вот за вопросы больше появляются на практической части то есть там когда вас просить И гоняют вам дают АСК но я попытался писать словами чтобы
01:43:27 - 01:44:51
последовательности [музыка] потом Принт б потом принце потом Принт 3 асинхронные танки допустим премьеры вставили в принципе асинхронном еще раз то есть нас сложность раз два три 4 5 6 вот на б лежит [музыка] потом вызовет сущность потом асинхронный блок идет мне кажется D до 3 было у нас а я вложено а потом наверное потом должна быть наверное уже Я тоже вызываем асинхронно правильно Да да наверное А если бы синхронно вызывали Если бы [музыка] если бы есть синхронно вопрос что-то там такое могло с этим очень
01:44:20 - 01:45:58
аккуратно но допустим там ничего нет поэтому я просто представляет если синхронно то тогда [музыка] получается На какие очереди запихивать одна очередь типа конечно там так если там по сути да было бы то есть синхронной задачей получается в том что она закидывается в конец очереди То есть у нас не типа не а cbd да А B C D потому что с первого закинули потом C то есть не наоборот хоть они асинхронные вот так Ну что ж в принципе с техническим собеседованием закончили Да но в принципе основные темы Да
01:45:48 - 01:47:32
которые затрагиваться на теоретических собесах мы взяли Возможно я бы еще какой-нибудь то это сейчас да типа именно сосновую часть закончились такой еще типа прикладной вопрос задам Да так комментарии позже Да в рекламный вопрос Это я сижу программирую у меня делают табличку да реализую запускаю симулятор А мне табличка не работает не нажимается не скроется ничего ничего не делает почему-то хоть все было сделано делегат добавили эту ситуацию [музыка] Честно говоря я вот так вот что-то на скидку я пока
01:46:49 - 01:48:16
не статусы когда таблица обычно Ну как сказать скролилась и все такое Да скроилось тормозами такое было Вот это как бы отдельная история ну чтоб это я бы смотрел там 3 секундучей до какой-то надо смотреть ну хорошо это если не скроется Но если не скроется Ну да это самое логично есть либо есть тоже вариант сразу Кстати два варианта На этот кейс есть поэтому не скроется А если у нас кролиться на Не отрабатывает нажатие если скроется но не отрабатывают нажатия Слушай ну там насколько помню на таблице
01:47:58 - 01:49:20
мы когда там в одном из делегатов Да она не дата собственно именно в три был View соответственно делегат Да там чтобы вот эти нажать у тебя отрабатывали тебе нужно определить соответствующий метод насколько я помню по моему Table [музыка] если метод определяешь все хорошо если Ну как бы я повторюсь все на определенную Надо куда-то дальше смотреть может кстати говоря там как-то для ячейки Вот Но я бы скорее погнали Вот а еще какой есть кейсик к этому же то есть ну ты правильно говоришь там в коде
01:48:57 - 01:50:27
смотрим то есть еще мне что кажется ты меня же как сказать подкалывал на тему этого скроллинг инструмент Мне кажется он должен быть там селекшеные болт или консилек selection есть но это не совсем продолжайте там визуально но не отображается Ну кстати логично если не отображается визуально значит точно в коде надо смотреть отрабатывает для нас метод А если метод Не отрабатывает чем будет ошибка одна из любимых вот тогда подсказка Не отрабатывает ошибок жену я не джун либо я женат написал метод реализацию Так значит
01:49:58 - 01:51:20
проблемы такой не знал Да ну вообще да интересный момент тут я сдаюсь может быть два варианта это ошибки Жена первый вариант это не вызвали метод где сэтап или коллекцию Ну или таблицу это первый второй просто не засыпали делегат на самом деле показали Там делегат просто ну ладно ну это совсем это ошибки жена Я сказал они причем местные не называть метод какой-то либо что-то не сойтись есть [музыка] Ну значит [музыка] с этим работал меня немножко поразило что [музыка] page Controller Да есть у него и
01:51:11 - 01:52:58
соответственно page Control и вот мне надо было для своего приложения погоды чтобы знаешь типа можно было этим свайпом и кстати локации на который ты хочешь смотреть Я хочу контроллер располагался не снизу как он обычно располагается сверху Вот и сейчас соответствующих была проблема что я не мог понять почему не отображается оказалось реализовать [музыка] неочевидные вообще знаешь честно нравится я бы концепция опциональных методов интерфейсом мне честно говоря как-то мне не очень нравится вот все шашки
01:52:10 - 01:53:38
такого честно говоря нет то есть ты пилишь интерфейс у него есть 5 методов значит быть реализуем как ты их реализуешь уже твои проблемы Вот здесь получается что метод не реализовал тебя не работает метод реализовал работать просто стоял бы заглушка Ну тебе вижу Судя по истерии фиг его знает чисто мой вкусовщина смотри вообще такие все делегаты открывал Я и там допустим это был деликат да там конечно что будешь писать Ну если они все будут не пацанами Ты подпишись протокол И что будешь типа это уже как искать это уже проблема того
01:53:04 - 01:54:22
кто рекомендовал нафига тебе интерфейс который 20 метров запили 5 интерфейсов понимаешь условно говоря как бы да для которого грубо говоря Как сказать там по три метода в каждом образно выражаясь Ну да тут возникла проблема что надо назначать делегатов но это опять же говоришь Недостатки и достоинства в любой архитектуры это понятно Вот если это реализовано было также события и там на самом деле у тебя было бы класс 20 событий ты бы просто подписался бы на три из них аналог того чтобы вот здесь Здесь
01:54:01 - 01:55:19
реализуешь три метода в интерфейс Ну тут Да я сейчас понимаю это просто взгляд с другой колокольни Вот на это все ну вот такая история аналогия Что называется но у нас ивенты тоже есть опять же то есть они реализован там лям типешн центре модификации но по сути vent и те же самые Ну да ну нет там не которые мне просто пишем центр это больше знаешь это не совсем ивенты это знаешь сообщение которое через все и подписчиков да такой момент мне кстати я знаешь я просто с этим скажем так дело имел мне
01:54:47 - 01:56:17
очень понравился что зачастую бывает во первых тестами очень часто и второй момент [музыка] непонятно кто сообщение кинул и или обработать последовательности тоже порой бывает такой Челлендж не самый по моему чистому Поэтому честно говоря вот я понял что если можно не использовать лучше не использовать я знаю что он есть я пробовал с ним работать но я обойтись Так что ж тыла на мой последний комментарий принципе по тех ребят в принципе все прошло отлично надо просто залатать так сказать оставшиеся дыры которые ты
01:55:52 - 01:57:26
благополучно находишь я Ты знаешь да Ну на самом деле нормально Да я как бы это я вижу честно говоря там последние лет мне очень сильно нравится заниматься знаешь то ли стареет еще больше нравится заниматься [музыка] может быть Мне прям визуально вижу как вот оно вот это дерево дерево дерево дерево Кто куда Кого знаешь дергает очень нравится в глазах вырастает Мне бы этим заниматься конечно хотелось Ну понятно поначалу Ну вот скажу чувак но можно потом такой вряд ли будет потому что игры типа есть и даже возьмет компания тебя возьму
01:56:43 - 01:58:14
сразу же на метла там ну потому что ну типа то что Ты светишься это не значит что ты как бы ну [ __ ] весь твой опыт откидывается в мусорку что типа сейчас пока К сожалению Ну так происходит это немножко знаешь так демотивирует так опускается авторитет свой собственный глаза куда-то ниже плинтуса Да как бы ну я думаю что это надо просто пережить Так что в принципе да тут комментарии говорил Да в принципе ну стараться да давайте развернуть ответы это понятно То есть справляешься хорошо до приводить к
01:57:35 - 01:58:45
примеру и говорю покрепче теорию знать то есть чуть больше углубляться надо Потому что часто просит не только вот типа там чего Выведи там допустим да Но и на реализуйте там диспач-группу для вот этих приколов написать пару строчек кода Но не все могут сделать так все отлично Я считаю тем более для свитера есть понимание всего что есть у нас довольно таки не поверхностное вот Ну будем надеяться Да ну не знаю честно говоря очень хочется в будущем прокачаться в плане алгоритмики всякие там вот эти красно-чёрные деревья списки
01:58:19 - 01:59:50
и прочие подобные кто не Да условно говоря чтобы как-то ну в грязь лицом не падать когда меня про это спрашивают Вот потому что Честно говоря я понимаю что надо применять много там Два с половиной человека из 100 там а-а раз в жизни это применяет Ну вот по моим честно говоря вот просто опыта но тем не менее спрашивать почему-то любят компании Да Типа если компания работает в какой-то графикой какой-то машинным обучением там знаешь Нет меня на самом деле спрашивали Об этом я устраивался какой-то контору
01:59:22 - 02:00:22
Да и из серии они там типа лендинги знаешь типа там пилит им там нужен типа вот ну там какую-то типа там страшного смотрю там немножко удалось взаимодействовать параллельно основной работе не типа там база база муки 10 таблиц там знаешь как бы и все Ну и там в каждой из них там по сути под две записи тут как угодно делает Знаешь какие угодно алгоритм применяется знаешь курсором по этой базе бегает ничего сильно ничего сильно медленного не будет у тебя как бы красный черные деревья Вот они дедовщина в армии понимаешь как так
01:59:52 - 02:01:19
получаешь я по-другому но все может быть надо там используешь Я думаю что адаптироваться Поэтому да но какие-то комментарии в целом в целом очень не в целом понравилось может быть какие-то вопросы Я бы знаешь может быть больше блоков но не так интенсивно может быть знаешь [музыка] как жена Мы спрашиваем там о каких-то таких вещах неглам и спрашиваю таких вещах синяя рам этом общаемся там О чем-то ну там совсем как бы крутому и как бы мы когда Общались Да мне казалось что какие-то вопросы условно
02:00:41 - 02:02:14
прям совсем просто просто такие знаешь мне так кажется показалось понимаешь на самом деле вопросы всех одинаковые всегда задаются просто чтобы я как говорил тебе ну окунёмся глубже да то есть это типа на уровень чуть больше берем то есть с Любой с любым чуваком будет типа чувак приходит даже неважно джун ты вообще там Синьор не знаю какой-то Крутой тебя везде спросят типа ну кому-то банальном да и будут Смотреть насколько глубоко ты Копаешь то есть я говорю то же самое jcd можно рассказывать типа вот есть две
02:01:48 - 02:02:59
очереди работают вообще как вообще поток работы очереди там как он прыгает типа приоритеты Как устроены так далее [музыка] Слушай ну так вроде вроде нет Понятно Что видишь Да здесь как мог собеседование там естественно я бы там спрашивал бы там может даже Дальше Да как-то А как у вас процессы до в компании Как как что-то вообще Есть какой-то момент или не туда потому что часто бывает что они Да у нас там есть все дела туда-сюда А потом получается и говорят Ну чувак Ну как бы это самое чуть команду отвлекаешь Ну Google в руки
02:02:25 - 02:03:38
как бы Давай пока контакт проходят компании То есть можно если сейчас если в комментариях будет Будут желающие можем в принципе разобрать Какие вопросы спрашивать после теоретического собеседования то есть типа вот ты сидишь вот если там говорит ну задавайте интересующие вас вопросы Да такое А деньги платите вовремя А техника вы даете да вот эти вопросы мы разберем но если есть такое желание технику в эту технику вы даете случае условно говоря там macos да это как бы наверное достаточно актуально в целом
02:03:22 - 02:04:46
понятно у большинства там пользователи даже там и программиста компьютер найти не проблема вообще знаешь у него Macbook своего не было вообще никогда он когда учился фигачился на виртуальной машине страдал боль испытывал Вот чуть ниже спины это самое и соответственно как бы и на работу устроился здание сделал хорошо и там ему дали что-то Типа какой-то Macbook потом оттуда уволился покупать Хотя с другой стороны там ну как ништяк приходил у меня плохо выполняется на Core i7 8 ядер он делает две секунды
02:04:07 - 02:05:36
она его макбуке Да там тоже получается Intel там что-то там не помню уже сколько он 30 секунд делает знаешь типа Завис и я начал знаешь мы таких вот запустили помочь обещал мы запустили Думаю ничего не пишет знаешь в конце я такой Думаю уже все это Подождите тут Это я Ну ладно окей вот недавно хвастаться что это купил себе потому что 15 года могу тоже очень старый Ну ладно это мы с тобой за кадром поговорим сейчас так благодарю замок Собес Я думаю понравится зрителям твои ответы но еще Кстати критику комментарии пожелания там
02:05:14 - 02:06:39
все дела до с удовольствием на самом деле еще как это я подумал что чей комментарий правильно догадает сколько раз пил своей кружки завидовал закреплю просто все понятно смотрим изучаем пишем комментарии Спасибо подожди вот так сделаем для воды и колосе налью потому что Петя обрезал мой монтажер реклама
02:05:57 - 02:06:52