Forwarded from mobDev()
Ищем код, который не используется в приложении
Periphery — инструмент, который предназначен для определения неиспользуемого кода в проекте на Swift. Он строит собственный граф проекта и на его основе определяет декларации, на которые нет ссылок.
Материалы:
👉 GitHub проекта
#ios #swift
Periphery — инструмент, который предназначен для определения неиспользуемого кода в проекте на Swift. Он строит собственный граф проекта и на его основе определяет декларации, на которые нет ссылок.
Материалы:
👉 GitHub проекта
#ios #swift
🔥11👍1
норм собес. не душный и лайтовый. очень понравилась структура и вайбовая атмосфера. могу даже сказать лучший на ютубе.
замечу, что в норм компаниях именно учат проводить собесы. Если вы думаете, что прощупывание всех вопросов до кишков это норм, то это не так. Пока несколько раз не проведешь с экспертом — не допустят. Независимо мидл ты или сеньор. Зачем это нужно?
1. Легкий и доброжелательный собес без душнины — это хорошая атмосфера. Даже если кандидат не проходит, то ту энергию, которую он оставил на собесе он транслирует своему окружению. А если проходит, то гораздо больше энергии и мотивации останется дальше. Вероятность принятия им оффера повышается
2. Бренд. Хорошие компании думают о бренде. Если ты решил посраться с кандидатом, оценить его навыки в нежелательной форме или покритиковать — это все репутационные издержки и никто от них не в выигрыше.
3. Собес должен чекать актуальные технологии. Не стоит спрашивать про автолайут, если его нет на проекте. И также про obj-c. Это не сессия, где мерятся письками интервьюер и кандидат.
https://www.youtube.com/watch?v=a_z4U0RvQgQ
замечу, что в норм компаниях именно учат проводить собесы. Если вы думаете, что прощупывание всех вопросов до кишков это норм, то это не так. Пока несколько раз не проведешь с экспертом — не допустят. Независимо мидл ты или сеньор. Зачем это нужно?
1. Легкий и доброжелательный собес без душнины — это хорошая атмосфера. Даже если кандидат не проходит, то ту энергию, которую он оставил на собесе он транслирует своему окружению. А если проходит, то гораздо больше энергии и мотивации останется дальше. Вероятность принятия им оффера повышается
2. Бренд. Хорошие компании думают о бренде. Если ты решил посраться с кандидатом, оценить его навыки в нежелательной форме или покритиковать — это все репутационные издержки и никто от них не в выигрыше.
3. Собес должен чекать актуальные технологии. Не стоит спрашивать про автолайут, если его нет на проекте. И также про obj-c. Это не сессия, где мерятся письками интервьюер и кандидат.
https://www.youtube.com/watch?v=a_z4U0RvQgQ
YouTube
Публичное Собеседование iOS | Alex Ozun, Роман Тысячник | iOS Ukraine #2
Дата запису відео: 20.05.2021
Підписуйтесь на наші соцмережі:
Twitter: https://twitter.com/iOSUkraine
Telegram Channel: https://t.iss.one/iOSUkraine
Telegram Chat: https://t.iss.one/iOSUkraineChat
Facebook: https://www.facebook.com/groups/iosukraine
LinkedIn: htt…
Підписуйтесь на наші соцмережі:
Twitter: https://twitter.com/iOSUkraine
Telegram Channel: https://t.iss.one/iOSUkraine
Telegram Chat: https://t.iss.one/iOSUkraineChat
Facebook: https://www.facebook.com/groups/iosukraine
LinkedIn: htt…
🔥11
Публичная сессия систем дизайна
Главный навык сеньорности во многих компаниях — это способность кандидата проектировать свой код. Цель сессии определить не только ширину знаний, но и навыки коммуникации. Хороший разраб не ждет, когда ему принесут все готовое. А сам предлагает решения и ищет компромиссы
Вот несколько критериев оценки:
- Как хорошо собирает требования?
- Как ищет риски и корнер-кейсы?
- Берет ли кандидат инициативу в своих руки?
- Как легко с ним коммуницировать? (чаще опционально)
Главный навык сеньорности во многих компаниях — это способность кандидата проектировать свой код. Цель сессии определить не только ширину знаний, но и навыки коммуникации. Хороший разраб не ждет, когда ему принесут все готовое. А сам предлагает решения и ищет компромиссы
Вот несколько критериев оценки:
- Как хорошо собирает требования?
- Как ищет риски и корнер-кейсы?
- Берет ли кандидат инициативу в своих руки?
- Как легко с ним коммуницировать? (чаще опционально)
YouTube
iOS Engineering System Design Interview "Analytics Service" | Антон Калюжный | iOS Ukraine #2
Дата запису відео: 18.05.2021
Підписуйтесь на наші соцмережі:
Twitter: https://twitter.com/iOSUkraine
Telegram Channel: https://t.iss.one/iOSUkraine
Telegram Chat: https://t.iss.one/iOSUkraineChat
Facebook: https://www.facebook.com/groups/iosukraine
LinkedIn: htt…
Підписуйтесь на наші соцмережі:
Twitter: https://twitter.com/iOSUkraine
Telegram Channel: https://t.iss.one/iOSUkraine
Telegram Chat: https://t.iss.one/iOSUkraineChat
Facebook: https://www.facebook.com/groups/iosukraine
LinkedIn: htt…
👍9💊2
Сначала я хотел фильтровать, а потом решил опубликовать всех и каждого, кого написали. Возможно, кто-то написал имя своего тимлида или псевдоним пса.
Меня можете не считать всерьез. Это просто потому, что я делал опрос в своем канале.
Вообще честно не стоит близко к сердцу воспринимать этот вопрос. Считаю много кого из разрабов упустили. Например, Витю из iOS Dev и его победах в тг конкурсах. Но самое время задуматься о public visibility
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥4
Forwarded from Polymorphic Blueprint (Aѕtɛmiɾ)
This media is not supported in your browser
VIEW IN TELEGRAM
#wwdc24 #swift
🔗 Consume noncopyable types in Swift
Одна из лучших сессий в этом году. К ней будут возвратятся снова и снова, а важность представленных изменений (во многом реализованных в Swift 5.9) довольно велика. Заложенные принципы и концепции фундаментальны и основополагающи для новых семантик, охватывающие эффектом домино все что есть (ибо те, кто поглядывает в текущие снепшоты Swift видят изменения даже базовых вещей).
При проектировании нового типа у вас уже есть контроль над тем, может ли кто-то глубоко копировать (deep copy) его значения. То, чего у вас нет контроля, это может ли Swift автоматически копировать его. Copyable — это новый протокол, который описывает способность типа быть автоматически скопированным. Как и Sendable, он не имеет требований к членам - или же является протоколом-маркером (marker protocol).
• По умолчанию, каждый тип инфериться как Copyable
• Каждый тип пытается автоматически конформить Copyable
• Каждый дженерик параметр автоматически требует, чтобы тип, который вы используете в качестве плейхолдер-типа, был Copyable
• Каждый протокол и ассоциированный тип автоматически требуют, чтобы конкретный тип конформил Copyable
• Каждый boxed тип протокола автоматически композится из Copyable
Но не все типы должны и могут быть копируемыми по умолчанию. Я уже писал несколько раз про некомируемые типы или ~Copyable протокол. Важность этого изменения сложно переоценить, а прочитать Ownership Manifesto будет полезно всем; Возможность копировать или некопировать тесно связана с концепцией владения (ownership). Разработчики Swift не сильно об этом задумывались, а многие до сих не знают, что у value types появился в Swift 5.9 c вводом некопируемых типов появился деинициализатор (SE-0390 Noncopyable structs and enums).
С вводом некопируемости value types и концепцией владения, мы получаем возможность не просто копировать, но и трансферить владение (ownership tranfer) таким типом, поглощать (consume) или одалживать (borrow). Это новые семантики управления владением.
🏛 Polymorphic Blueprint
🔗 Consume noncopyable types in Swift
Одна из лучших сессий в этом году. К ней будут возвратятся снова и снова, а важность представленных изменений (во многом реализованных в Swift 5.9) довольно велика. Заложенные принципы и концепции фундаментальны и основополагающи для новых семантик, охватывающие эффектом домино все что есть (ибо те, кто поглядывает в текущие снепшоты Swift видят изменения даже базовых вещей).
При проектировании нового типа у вас уже есть контроль над тем, может ли кто-то глубоко копировать (deep copy) его значения. То, чего у вас нет контроля, это может ли Swift автоматически копировать его. Copyable — это новый протокол, который описывает способность типа быть автоматически скопированным. Как и Sendable, он не имеет требований к членам - или же является протоколом-маркером (marker protocol).
• По умолчанию, каждый тип инфериться как Copyable
• Каждый тип пытается автоматически конформить Copyable
• Каждый дженерик параметр автоматически требует, чтобы тип, который вы используете в качестве плейхолдер-типа, был Copyable
• Каждый протокол и ассоциированный тип автоматически требуют, чтобы конкретный тип конформил Copyable
• Каждый boxed тип протокола автоматически композится из Copyable
Но не все типы должны и могут быть копируемыми по умолчанию. Я уже писал несколько раз про некомируемые типы или ~Copyable протокол. Важность этого изменения сложно переоценить, а прочитать Ownership Manifesto будет полезно всем; Возможность копировать или некопировать тесно связана с концепцией владения (ownership). Разработчики Swift не сильно об этом задумывались, а многие до сих не знают, что у value types появился в Swift 5.9 c вводом некопируемых типов появился деинициализатор (SE-0390 Noncopyable structs and enums).
С вводом некопируемости value types и концепцией владения, мы получаем возможность не просто копировать, но и трансферить владение (ownership tranfer) таким типом, поглощать (consume) или одалживать (borrow). Это новые семантики управления владением.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как перевезти 250+ SPM модулей из динамики в статику и не сойти с ума
Продолжая тему модуляризации нельзя не затронуть тему линковки модулей.
Модуляризация не ограничивается вопросом "в какой модуль класть фичи, а в какой бизнес-логику?". Ведь помимо чистой структуры и ответственностей команд есть еще один её важный плюс. Это скорость запуска и оптимизация приложения за счет разделения модулей на динамические или статические библиотеки.
Это всегда большой объем работы:
- нужно настроить кучу модулей
- подружить их вместе и не посраться с другими командами
- ничего не сломать
- а также затрекать правильные метрики, чтобы вся работа не была вредной
Классный доклад, если хотите узнать как решают такие задачи в крупных проектах. Или если вы плохо представляете зачем это нужно и почему сложно.
Продолжая тему модуляризации нельзя не затронуть тему линковки модулей.
Модуляризация не ограничивается вопросом "в какой модуль класть фичи, а в какой бизнес-логику?". Ведь помимо чистой структуры и ответственностей команд есть еще один её важный плюс. Это скорость запуска и оптимизация приложения за счет разделения модулей на динамические или статические библиотеки.
Это всегда большой объем работы:
- нужно настроить кучу модулей
- подружить их вместе и не посраться с другими командами
- ничего не сломать
- а также затрекать правильные метрики, чтобы вся работа не была вредной
Классный доклад, если хотите узнать как решают такие задачи в крупных проектах. Или если вы плохо представляете зачем это нужно и почему сложно.
YouTube
Как перевезти 250+ SPM модулей из динамики в статику и не сойти с ума / Григорий Сухоруков
Доклад от Григория Сухорукова, iOS-разработчика в Яндекс Go на Я.Субботнике по мобильной разработке
Больше контента и анонсов в нашем канале:
Yandex for Mobile https://t.iss.one/yandexformobile
#ЯСубботник #iOSразработка #мобильнаяразработка #ЯндексGo #Swift…
Больше контента и анонсов в нашем канале:
Yandex for Mobile https://t.iss.one/yandexformobile
#ЯСубботник #iOSразработка #мобильнаяразработка #ЯндексGo #Swift…