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
Я продолжаю собирать вопросы для проведения или прохождения собесов. На очереди частый блок, который я задавал, когда хотел по лучше покопать в сторону архитектур.
Управление зависимостями, наверное, самый важный блок. Как и кем будут передаваться данные сильно влияет не только на простоту работы с кодом и модулями, но и на скорость сборки.
В этой подборке вы найдете ответы на вопросы:
Please open Telegram to view this post
VIEW IN TELEGRAM
Марафон по проектированию
Я давно потерял интерес к менторству. Есть много тем, где я сам хочу вырасти. Заранее извиняюсь всем тем, кто писал мне, но я отказывал. Но у вас есть шанс поучаствовать в более лучшем формате, чем скучное индивидуальное менторство со мной.
Я давно хочу сделать что-то вроде конфы или интенсивна по той теме, в которой хочу прокачаться. Собрать заинтересованных людей, кто дойдет со мной до конца, а потом тепло вспоминать этот путь вместе. Как облегчение после крутого путешествия, наполненного сложностью и вызовами. Тогда это казалось сложным и амбициозным, но сейчас очередным этапом нашего роста.
Как во время хакатонов или телеграм конкурсов. Я до сих пор не могу найти тот заменитель того чувства, когда мы с пацанами по 12 часов сидели и делали задачи, иногда даже не спав. Я как ветеран боевых действий, воспитанный в военное время. Который вернулся на гражданку, и хочет вернуться назад, не находя себя в спокойной жизни.
Поэтому я следую правилу лидерства и говорю, что если я не смогу найти, то возглавлю.
Такую тему я нашел. Это проектирование интерфейсов.
В рамках этого марафона мы будем в течении недели/две каждый день собираться на созвоны и проектировать приложения:
🟣 разбирать частые кейсы на работе
🟣 строить схемы и задумываться о корнер кейсах
🟣 находить нюансы нашей платформы
🟣 разбирать известные библиотеки и инструменты
🟣 делать домашние задания и разбирать их
🟣 памятные призы и призы за лучшие работы
Марафон будет доступен не для всех. Зеваки и проезжающие мимо не будут приглашены. Тут нет времени следить за каждым, кто захотел отвалиться или пришел потроллить. Ударная группа должна быть более собранная. Уровень подготовки любой.
Если тебе интересно или хочешь помочь с идеями, то ставь + в комменты или пиши в лс @lvbond. Формат и дата еще будут модифицироваться
Ну, а если желающих не наберется, то будет новый контент в ноушене
12 часов в день мы не будем заниматься, но еще подумаем
Я давно потерял интерес к менторству. Есть много тем, где я сам хочу вырасти. Заранее извиняюсь всем тем, кто писал мне, но я отказывал. Но у вас есть шанс поучаствовать в более лучшем формате, чем скучное индивидуальное менторство со мной.
Я давно хочу сделать что-то вроде конфы или интенсивна по той теме, в которой хочу прокачаться. Собрать заинтересованных людей, кто дойдет со мной до конца, а потом тепло вспоминать этот путь вместе. Как облегчение после крутого путешествия, наполненного сложностью и вызовами. Тогда это казалось сложным и амбициозным, но сейчас очередным этапом нашего роста.
Как во время хакатонов или телеграм конкурсов. Я до сих пор не могу найти тот заменитель того чувства, когда мы с пацанами по 12 часов сидели и делали задачи, иногда даже не спав. Я как ветеран боевых действий, воспитанный в военное время. Который вернулся на гражданку, и хочет вернуться назад, не находя себя в спокойной жизни.
Поэтому я следую правилу лидерства и говорю, что если я не смогу найти, то возглавлю.
Такую тему я нашел. Это проектирование интерфейсов.
В рамках этого марафона мы будем в течении недели/две каждый день собираться на созвоны и проектировать приложения:
Марафон будет доступен не для всех. Зеваки и проезжающие мимо не будут приглашены. Тут нет времени следить за каждым, кто захотел отвалиться или пришел потроллить. Ударная группа должна быть более собранная. Уровень подготовки любой.
Если тебе интересно или хочешь помочь с идеями, то ставь + в комменты или пиши в лс @lvbond. Формат и дата еще будут модифицироваться
Ну, а если желающих не наберется, то будет новый контент в ноушене
12 часов в день мы не будем заниматься, но еще подумаем
Please open Telegram to view this post
VIEW IN TELEGRAM
REST vs. GraphQL vs. gRPC vs. WebSocket
На последнем собесе меня спросили интересный вопрос: "какие инструменты кроме сокетов ты знаешь для real time общения?". Это очень клевый вопрос, который уходит за границы знания иос, но гораздо практичней вопросов про диспетчирезацию или экзистенциальные контейнеры.
Мне в разы больше нравятся собесы, где тебе задают вопросы, которые пусть и легко загуглить, но они более прикладные и оставят тебе знаний больше, чем те, о которых ты будешь спорить только в чатах. Сейчас у иосеров спрашивают даже чем head запрос отличается от get. А также какие разницы есть у http 1/2/3
Нашел статью по стандартам и протоколам, которые помогут нам запроектировать наши приложения лучше.
На последнем собесе меня спросили интересный вопрос: "какие инструменты кроме сокетов ты знаешь для real time общения?". Это очень клевый вопрос, который уходит за границы знания иос, но гораздо практичней вопросов про диспетчирезацию или экзистенциальные контейнеры.
Мне в разы больше нравятся собесы, где тебе задают вопросы, которые пусть и легко загуглить, но они более прикладные и оставят тебе знаний больше, чем те, о которых ты будешь спорить только в чатах. Сейчас у иосеров спрашивают даже чем head запрос отличается от get. А также какие разницы есть у http 1/2/3
Нашел статью по стандартам и протоколам, которые помогут нам запроектировать наши приложения лучше.
Resolutesoftware
REST vs. GraphQL vs. gRPC vs. WebSocket
In this article, we will discuss the most popular modern standards, frameworks, and protocols and the different trade-offs between each of them.
По запросам выкладываю публично часть обязательных WWDC из закрытого ноушена. Многие даже удалены из библиотеки
1. iOS Memory Deep Dive. Как устроена память и зачем нужны экзистенциальные контейнеры. Советы по уменьшению использования памяти
2. Знакомство с Swift. Удаленная секция, которая обязательна для просмотра всем, кто не видел презентацию нашего привычного языка.
3. Знакомство с SwiftUI. Презентация SwiftUI, где объясняют преимущества декларативного кода и то, как SwiftUI и Xcode могут объединить усилия, чтобы помочь вам создавать отличные приложения быстрее.
4. ARC в Swift: основы и не только. Как работает ARC и как Swift работает с памятью.
5. Полное руководство по производительности приложений. Все о том, как ускорять и дебажить апку.
На днях хочу сделать разборы и конспекты главных секций WWDC 24
Please open Telegram to view this post
VIEW IN TELEGRAM
Короче, телеграм оказался умнее меня. По анонсу марафона и билетам инфа будет чуть позже.
Почему слитые ответы или собесы никому не помогут. Или формула качественного материала.
Для всех знаний есть минимальные системные требования. Если мозг не обладает вычислительной мощностью, то мы не сможем загрузить знания. Ты не можешь за секунду понять глубину сложного математического закона, не отдав десятки лет для подготовки
Обучаясь, наш мозг получает ресурсы, которые помогают управлять полученными знаниями лучше. Если мы хотим получить знания, к которым не готовы, то они будут бесполезны или даже вредны.
Есть большое отличие между зазубренными знаниями и теми, что получены из практики. Зазубренные знания всегда будут меньше в цене, чем уникальный опыт.
Сам по себе заметил, что читаю больше тех авторов, кто занимается исследовательской работой. Кто поднимает темы, которые не хотят поднимать другие. Их мозг более натренированный, речь ясна, мысли структурированные.
Пока одни бегут как навязать джунам очередной универсальный материал для успешного оффера, другие продолжают делать то, что им нравится. Я уже автоматически отписываюсь от тех, кто только и бегает за очередным трендом, теряя свою уникальность и экспертизу. Распыляясь на все сразу и не догоняя ничего.
Скопировать чужие мысли и вставить в свою голову не сделает нас экспертом. Для каждой теории нужна практика. Каждая чужая мысль становится уникальной под реальным опытом. Имеет свои контексты и нюансы. Это как читать книги по успеху, хорошо их пересказывать, но никогда не придти к тому, что в них написано.
Многие разрабы, даже со слитыми ответами и вопросами, не могут пройти собесы. У них просто не хватает памяти или понимания. Мозг по-разному впитывает инфу и обрабатывает ее. Он требует определеную подготовку, чтобы владеть этими навыками. Заученные слова сразу бросаются в глаза. Их менторы, у которых нет глубокого и широкого опыта, сами не понимают многих проблем и также не могут пройти собесы. Все мы знаем, что любой ВУЗ и любая система образований не успевает за реальным рынком. Никто не может научить нас лучше, чем мы сами.
Сейчас слишком много инфы. Много криков о секретных рецептах, сливах. Но по факту, во многих сборниках нет ничего такого, что давала бы открытая сессия WWDC. Недавно ко мне пришел в лс парень, который делал сайт со сборниками вопросов для собеседований и хотел купить рекламу.
Я отказался не потому, что он мой конкурент, а потому что качество ответов и вопросов было хуже, чем в официальных открытых источниках. Позже прояснилось, что он go-разраб, который собирал поверхностные вопросы по iOS и давал ответы через chatgpt. Совсем не разбираясь в теме. Отсюда куча ошибок и неточностей. Все выглядило инородно, будто с чужим акцентом.
Эта ситуация заставила меня лучше взглянуть на свою работу. Чем она отличается по качеству? Что я могу улучшить? Так я пересмотрел свою формулу контента.
💎 По каким критериям стоит отбирать материалы?
1️⃣ Актуальность информации. То, что было пару лет назад, уже может быть устаревшим.
2️⃣ Репутация автора. Если человек, с минимальным опытом в сфере, накрученным опытом или проработал в компаниях с сомнительной технической культурой, то его знания могут не подходить к тебе. А может быть никому
3️⃣ Релевантность. Если человек собрал ответы и материалы, никогда не трогав иос, то большой вопрос к точности. Более того, два эксперта из разных областей могут по-разному решать проблемы. Человек из крупного банка работает совсем по-другому, чем из стартапа. У всех разные требования к качеству и безопасности.
4️⃣ Точность информации. Проверил ли автор на практике свои слова? Пересказ ли это публичных статей с документация или глубокая аналитика с экспертизой пройденного ревью в уникальных компаний? Показала ли она себя жизнеспособно и не закрылась ли компания после таких решений? Использует ли предвзятость в своих словах?
5️⃣ Назначение контента. Контент, который помогает пройти собесы никак не связан с экспертностью человека. Процессы собесов всегда меняются, каждый по-разному их проводит. А задачи и знания для роста как эксперта плюс/минус остаются одинаковыми.
Для всех знаний есть минимальные системные требования. Если мозг не обладает вычислительной мощностью, то мы не сможем загрузить знания. Ты не можешь за секунду понять глубину сложного математического закона, не отдав десятки лет для подготовки
Обучаясь, наш мозг получает ресурсы, которые помогают управлять полученными знаниями лучше. Если мы хотим получить знания, к которым не готовы, то они будут бесполезны или даже вредны.
Есть большое отличие между зазубренными знаниями и теми, что получены из практики. Зазубренные знания всегда будут меньше в цене, чем уникальный опыт.
Сам по себе заметил, что читаю больше тех авторов, кто занимается исследовательской работой. Кто поднимает темы, которые не хотят поднимать другие. Их мозг более натренированный, речь ясна, мысли структурированные.
Пока одни бегут как навязать джунам очередной универсальный материал для успешного оффера, другие продолжают делать то, что им нравится. Я уже автоматически отписываюсь от тех, кто только и бегает за очередным трендом, теряя свою уникальность и экспертизу. Распыляясь на все сразу и не догоняя ничего.
Скопировать чужие мысли и вставить в свою голову не сделает нас экспертом. Для каждой теории нужна практика. Каждая чужая мысль становится уникальной под реальным опытом. Имеет свои контексты и нюансы. Это как читать книги по успеху, хорошо их пересказывать, но никогда не придти к тому, что в них написано.
Многие разрабы, даже со слитыми ответами и вопросами, не могут пройти собесы. У них просто не хватает памяти или понимания. Мозг по-разному впитывает инфу и обрабатывает ее. Он требует определеную подготовку, чтобы владеть этими навыками. Заученные слова сразу бросаются в глаза. Их менторы, у которых нет глубокого и широкого опыта, сами не понимают многих проблем и также не могут пройти собесы. Все мы знаем, что любой ВУЗ и любая система образований не успевает за реальным рынком. Никто не может научить нас лучше, чем мы сами.
Сейчас слишком много инфы. Много криков о секретных рецептах, сливах. Но по факту, во многих сборниках нет ничего такого, что давала бы открытая сессия WWDC. Недавно ко мне пришел в лс парень, который делал сайт со сборниками вопросов для собеседований и хотел купить рекламу.
Я отказался не потому, что он мой конкурент, а потому что качество ответов и вопросов было хуже, чем в официальных открытых источниках. Позже прояснилось, что он go-разраб, который собирал поверхностные вопросы по iOS и давал ответы через chatgpt. Совсем не разбираясь в теме. Отсюда куча ошибок и неточностей. Все выглядило инородно, будто с чужим акцентом.
Эта ситуация заставила меня лучше взглянуть на свою работу. Чем она отличается по качеству? Что я могу улучшить? Так я пересмотрел свою формулу контента.
1️⃣ Актуальность информации. То, что было пару лет назад, уже может быть устаревшим.
2️⃣ Репутация автора. Если человек, с минимальным опытом в сфере, накрученным опытом или проработал в компаниях с сомнительной технической культурой, то его знания могут не подходить к тебе. А может быть никому
3️⃣ Релевантность. Если человек собрал ответы и материалы, никогда не трогав иос, то большой вопрос к точности. Более того, два эксперта из разных областей могут по-разному решать проблемы. Человек из крупного банка работает совсем по-другому, чем из стартапа. У всех разные требования к качеству и безопасности.
4️⃣ Точность информации. Проверил ли автор на практике свои слова? Пересказ ли это публичных статей с документация или глубокая аналитика с экспертизой пройденного ревью в уникальных компаний? Показала ли она себя жизнеспособно и не закрылась ли компания после таких решений? Использует ли предвзятость в своих словах?
5️⃣ Назначение контента. Контент, который помогает пройти собесы никак не связан с экспертностью человека. Процессы собесов всегда меняются, каждый по-разному их проводит. А задачи и знания для роста как эксперта плюс/минус остаются одинаковыми.
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаю идти в сторону около mob.dev.ops. На очереди поборка, которая все чаще встречается на практике. Тема модуляризации очень актуальная, тк настоящий сеньор на изи может порезать проект и ускорить всем работу.
Для этого ему нужно знать:
Ответы на вопросы обычно заполняются в течении двух недель, но если спрос выше, то быстрее.
Также напоминаю о последних сборниках:
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in the widget
VIEW IN TELEGRAM
Мы снова задаем новый формат иос-индустрии. Первый групповой боевой пропуск. Тема, в которой и я сам хочу хорошо прокачаться.
Ориентировочный старт 01.07.2024
В рамках марафона:
Анонс перенес на 01.07. Вступаем и прокачиваемся вместе. Если сложно с загрузкой, то мы будем подстраиваться. Но желательно все же делать домашки, за них отдельные ачивки
Please open Telegram to view this post
VIEW IN TELEGRAM
Как решать задачи на литкод
Какое-то монументальное видео, где чувак 4,5 часа выдает базу. Супер нишевый видос, когда автор просто на своем желании сделал офигенную лекцию, уровня которой не найдешь на ютубе. А где-то даже заменит целые курсы по алгосам от яндекса и тп.
Разобрав такие острые вопросы:
🟣 чем отличаются problem solving skills от заучивания алгоритмов
🟣 какие алгоритмы нужны и как начать понимать их пользу
🟣 почему большинство ошибается насчет бесполезности алгоритмов
🟣 работа с когнитивными искажениями и ментальными барьерами
🟣 ментальная гигиена и как не выгореть от неудач
Я тоже уже замечаю как регулярные алго задачи меняют мой мозг. Я начинаю любить шахматы, чаще думаю перед действиями в жизни, не боюсь неудач. Как-нибудь напишу пост об этом.
Пожелайте счастья таким людям, кто просто делает крутой контент для себя. Очень вайбовый видос, который смотришь на одном дыхании.
Какое-то монументальное видео, где чувак 4,5 часа выдает базу. Супер нишевый видос, когда автор просто на своем желании сделал офигенную лекцию, уровня которой не найдешь на ютубе. А где-то даже заменит целые курсы по алгосам от яндекса и тп.
Разобрав такие острые вопросы:
Я тоже уже замечаю как регулярные алго задачи меняют мой мозг. Я начинаю любить шахматы, чаще думаю перед действиями в жизни, не боюсь неудач. Как-нибудь напишу пост об этом.
Пожелайте счастья таким людям, кто просто делает крутой контент для себя. Очень вайбовый видос, который смотришь на одном дыхании.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Как решать задачи на Leetcode(+полный гайд, работа, мотивация, депрессия, менталка, problem solving)
Telegram post: https://t.iss.one/koduryem/26
Problem solving skills. Скиллы и гайд для решения задач.
Всем привет! В этом видео будет про вообще все, что связано с решением задач - не только leetcode, но и в целом теория решения задач и в других областях, зачем…
Problem solving skills. Скиллы и гайд для решения задач.
Всем привет! В этом видео будет про вообще все, что связано с решением задач - не только leetcode, но и в целом теория решения задач и в других областях, зачем…
Одна из моих первых статей в закрытом ноушене, которую вы точно не найдете нигде.
Самый частый запрос при работе с коллекциями "А как сделать динамическую высоту в ячейках?".
Есть множество путей сделать эту задачу. Но самый "сеньорный" это сверстать с помощью фреймов и UICollectionViewDelegateFlowLayout
Верстка фреймами в некоторых компаниях даже считается требование от сеньора. А, например, в проектах авито и яндекса, почти вся верстка с помощью фреймов.
Чем экспертнее разраб, тем меньше он нуждает в других инструментах. Часто многие проекты отказывались от SnapKit, PinLayout и других DSL для верстки.
Она позволяет:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
В какой команде вы бы хотели работать?
Final Results
29%
Продуктовой кросс-функциональной
22%
Продуктовой функциональной
8%
Продуктовая гибрид
13%
Платформенная кросс-функциональная
18%
Платформенная функциональная
15%
Мне без разницы
26%
Я не понимаю о чем ты
Один из самых частых кейсов в литкоде — это задачи со строками: палиндромы, анаграмы, сабстроки. Эти задачи могут встретиться и в реальной жизни, если вы делаете текстовый редактор или другие управление с текстом.
Да даже если просто хотите эффективней решать литкод или улучшить навыки программирования. Насмотренность в программирование очень важная вещь. Она формирует экспертность и инженерность.
Я попробовал собрать лучшие подходы к поиску анаграм. Публично пока покажу одну, но в ноушене разобрал еще 4 задачи. Они дадут крутые паттерны и помогут отказаться от глупой зубрежки
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM