Продвинутый разбор Copy-on-write: isKnownUniquelyReferenced
Немногие знают, но этот канал начался ~4 года назад с разбора фундаментальных тем. Еще до того, как это стало мейнстримом. Тогда меня даже критиковали другие блогеры мол, зачем рассказывать широкой аудитории о таких нишевых вещах? Теперь нишевым быть в тренде.
Но я всегда писал так, как хотел, и о том, что мне самому интересно.
Еще раньше у меня вышла статья на Хабре. Первая проба пера была про Copy-on-Write. Сейчас я бы переписал ее полностью и сделал в разы глубже. Частично так и делаю уже в Notion, чате и канале.
Автор статьи тоже сильно углубился и провёл огромный ресерч. Я почти никогда не получал реальной пользы из докладов на конференциях. Чаще мне помогали люди из чатов, которые с огнем в глазах и слюной во рту, рассказывают о любимой теме так, как им удобно.
А когда тебя гоняют по десятому кругу с одним и тем же докладом на конференциях, этот огонь заметно угасает.
Все становится более сдержанным. Где-то недосказано, где-то приукрашено, а что-то и вовсе не до конца изучено. Огня со слюной становится меньше.
Jacob Bartlett стал моим любимым нишевым блогером в iOS. Я купил у него подписку и с давно забытым интересом читаю весь контент. Он вставляет мемы и шутки, которые ему нравятся. Делает скрины, а не ленивый неотформатированный код из курсора. В нем чувствуется энергия и искренность.
Мы еще много разберем его статей более предметно, а пока я поделюсь именно его скиллом автора.
Немногие знают, но этот канал начался ~4 года назад с разбора фундаментальных тем. Еще до того, как это стало мейнстримом. Тогда меня даже критиковали другие блогеры мол, зачем рассказывать широкой аудитории о таких нишевых вещах? Теперь нишевым быть в тренде.
Но я всегда писал так, как хотел, и о том, что мне самому интересно.
Еще раньше у меня вышла статья на Хабре. Первая проба пера была про Copy-on-Write. Сейчас я бы переписал ее полностью и сделал в разы глубже. Частично так и делаю уже в Notion, чате и канале.
Автор статьи тоже сильно углубился и провёл огромный ресерч. Я почти никогда не получал реальной пользы из докладов на конференциях. Чаще мне помогали люди из чатов, которые с огнем в глазах и слюной во рту, рассказывают о любимой теме так, как им удобно.
А когда тебя гоняют по десятому кругу с одним и тем же докладом на конференциях, этот огонь заметно угасает.
Все становится более сдержанным. Где-то недосказано, где-то приукрашено, а что-то и вовсе не до конца изучено. Огня со слюной становится меньше.
Jacob Bartlett стал моим любимым нишевым блогером в iOS. Я купил у него подписку и с давно забытым интересом читаю весь контент. Он вставляет мемы и шутки, которые ему нравятся. Делает скрины, а не ленивый неотформатированный код из курсора. В нем чувствуется энергия и искренность.
Мы еще много разберем его статей более предметно, а пока я поделюсь именно его скиллом автора.
смотрю названия докладов некоторых конференций.
кажется, что названием можно весь доклад закончить
ауф братья🤞 🐺
кажется, что названием можно весь доклад закончить
ауф братья
Please open Telegram to view this post
VIEW IN TELEGRAM
How to Learn the Swift Source Code
Продолжаем контент моего краша. В прошлой статье я писал, что мой новый любимый нишевый блогер обладает крутым авторским почерком. Давайте поговорим о содержании.
Что такое хорошая статья?
В эпоху аи кол-во однотипного контента стало х2. Многое просто пересказ чужих статей 5-10 летней давности и немного задач из курсора. Даже форматирование кода при вставке не правят.
Никакого живого опыта, своего взгляда или решения реальных проблем. Синтетические задачи в вакууме.
Чем же восхитил мой новый краш? Он лезет в кишки. Его опыт это не доклады и чужие статьи, а свои пробы и эксперименты. Запуск кода, проверка гипотез, изучение кишков, чтение исходников.
На последнем хочется сделать акцент. Исходники Swift открыты, но многие говорят, что их невозможно читать. На самом деле это просто отдельный скилл.
Автор дает крутые советы как понимать исходники:
1️⃣ смотри на Swift как на пайплайн трансформаций
1. То, что ты пишешь на swift — это упрощенный код и синтаксический сахар.
2. Наш привычный код разбирает SIL (Swift Intermediate Language). Это еще читаемый для человека уровень
3. LLVM IR уже почти машинный код
4. Машинный код
2️⃣ Не пытайся читать все подряд
Берешь простую функцию. Смотришь, как она превращается в SIL. А дальше смотришь, что происходит дальше.
3️⃣ Используй инструменты компилятора
Дает реальное представление, как компилятор думает
Чтобы понять Swift глубоко, нужно перестать думать на уровне синтаксиса. Начать думать в терминах трансформаций кода.
Продолжаем контент моего краша. В прошлой статье я писал, что мой новый любимый нишевый блогер обладает крутым авторским почерком. Давайте поговорим о содержании.
Что такое хорошая статья?
В эпоху аи кол-во однотипного контента стало х2. Многое просто пересказ чужих статей 5-10 летней давности и немного задач из курсора. Даже форматирование кода при вставке не правят.
Никакого живого опыта, своего взгляда или решения реальных проблем. Синтетические задачи в вакууме.
Чем же восхитил мой новый краш? Он лезет в кишки. Его опыт это не доклады и чужие статьи, а свои пробы и эксперименты. Запуск кода, проверка гипотез, изучение кишков, чтение исходников.
На последнем хочется сделать акцент. Исходники Swift открыты, но многие говорят, что их невозможно читать. На самом деле это просто отдельный скилл.
Автор дает крутые советы как понимать исходники:
Swift кажется сложным не потому, что он магический, а потому что у него много уровней абстракции.
1️⃣ смотри на Swift как на пайплайн трансформаций
1. То, что ты пишешь на swift — это упрощенный код и синтаксический сахар.
2. Наш привычный код разбирает SIL (Swift Intermediate Language). Это еще читаемый для человека уровень
3. LLVM IR уже почти машинный код
4. Машинный код
2️⃣ Не пытайся читать все подряд
Берешь простую функцию. Смотришь, как она превращается в SIL. А дальше смотришь, что происходит дальше.
3️⃣ Используй инструменты компилятора
swiftc -emit-sil -O file.swift
Дает реальное представление, как компилятор думает
Чтобы понять Swift глубоко, нужно перестать думать на уровне синтаксиса. Начать думать в терминах трансформаций кода.
Праздничная рубрика corporate girl со столовки Яндекса
Напомню что на Масленицу были блины с апельсином
Напомню что на Масленицу были блины с апельсином
Swift Internals: A Deep Dive into the Compiler, Concurrency, and Architecture
Субботняя книжная рубрика. Взял книгу от Kodeco. Там разбор компилятора, диспетчеризации, памяти и многопоточности в Swift.
Интересное наблюдение. Во всех интервью с ребятами из MAANG, которых я опрашивал, звучала одна и та же мысль — в СНГ гораздо жестче спрашивают именно про язык и iOS-специфику.
На Западе этим почти не занимаются. Никто не лезет в детали ARC, устройство компилятора или разницу между стеком и кучей на уровне рантайма. Там больше практики лайфкодинга, архитектур и систем дизайна. Тебя оценивают как CS инженера, а не эксперта одной узкой платформы.
И, честно говоря, в этом есть логика.
Зачем тогда нам знать то, что мы почти никогда не используем напрямую?
Чтобы лучше понимать, что происходит под капотом, и принимать более точные инженерные решения, когда это действительно важно.
Книга не такая глубокая, скорее средний уровень. Но понравилась структура. Пока по уровню глубины все же самый интересный контент это у @contravariance
Скачать подгон можно тут
Ставь🔥 если считаешь знание кишков необходимым. И 💀 если нет
Субботняя книжная рубрика. Взял книгу от Kodeco. Там разбор компилятора, диспетчеризации, памяти и многопоточности в Swift.
Интересное наблюдение. Во всех интервью с ребятами из MAANG, которых я опрашивал, звучала одна и та же мысль — в СНГ гораздо жестче спрашивают именно про язык и iOS-специфику.
На Западе этим почти не занимаются. Никто не лезет в детали ARC, устройство компилятора или разницу между стеком и кучей на уровне рантайма. Там больше практики лайфкодинга, архитектур и систем дизайна. Тебя оценивают как CS инженера, а не эксперта одной узкой платформы.
И, честно говоря, в этом есть логика.
Зачем тогда нам знать то, что мы почти никогда не используем напрямую?
Чтобы лучше понимать, что происходит под капотом, и принимать более точные инженерные решения, когда это действительно важно.
Книга не такая глубокая, скорее средний уровень. Но понравилась структура. Пока по уровню глубины все же самый интересный контент это у @contravariance
Скачать подгон можно тут
Ставь
Please open Telegram to view this post
VIEW IN TELEGRAM
kodeco.com
Swift Internals
This book is designed for Swift developers who want to go beyond writing working code and understand how the language truly works under the hood.
It explains the mechanics of Swift’s type system, compiler behavior, memory model, and performance characteristics.…
It explains the mechanics of Swift’s type system, compiler behavior, memory model, and performance characteristics.…
Ну и пока не ушли от книг далеко. Уже месяц раздумываю купить электронную читалку. Хочется такой покупкой смотивировать себя больше читать.
Смотрю на Amazon Kindle Scribe. Эксперты, дайте помощь. Стоит ли это своих денег? Какие варианты есть для первой книги?
Смотрю на Amazon Kindle Scribe. Эксперты, дайте помощь. Стоит ли это своих денег? Какие варианты есть для первой книги?
Авито
Электронная книга Amazon Kindle Scribe 32 гб купить в Москве по низкой цене | Электроника | Авито
Электронная книга Amazon Kindle Scribe 32 гб: объявление о продаже в Москве на Авито. электронная книга - блокнот с премиум стилусом 10.1 amazon kindle scribe 32gb Экран: 10,2 дюйма, технология E-Ink Carta, разрешение 300 ppi. Дисплей антибликовый, с адаптивной…
Forwarded from Pavel Durov (Pavel Durov)
Please open Telegram to view this post
VIEW IN TELEGRAM
Cheat Sheet Xcode инструментов для перфоманса
Уже полтора месяца я пишу огромную статью как мы делали видеоленту. Где-то 30 А4 листов. Огромный блок состоит из перфоманса. Я не просто хочу рассказать документацию, но и как это помогало решать нам задачу.
Изучая материал сами знаете кого увидел статью о полезных инструментах Xcode.
1️⃣ Crashes
Для более удобного логирования крашей и глубокой диагностики
2️⃣ Disk Writes
Помогает понимать что происходит с чрезмерными операциями на диск. Такие влияют на перфоманс и батарею
3️⃣ Energy & Battery Usage
Для оценки нулевого выброса углерода вашего устройства.
4️⃣ App Launch
Одна из самых полезных метрик для оценки запуска приложения
5️⃣ Hang Rate & Scroll Hitches
Трекинг зависаний основного потока. Есть множество способов это сделать:
- синхронный доступ к вводу/ввыводу в базу
- большие операции
- длительная обработка медиа декодинга
- regex и обработки текста
6️⃣ Memory
Ну и куда без оценки потребления памяти
Уже полтора месяца я пишу огромную статью как мы делали видеоленту. Где-то 30 А4 листов. Огромный блок состоит из перфоманса. Я не просто хочу рассказать документацию, но и как это помогало решать нам задачу.
Изучая материал сами знаете кого увидел статью о полезных инструментах Xcode.
1️⃣ Crashes
Для более удобного логирования крашей и глубокой диагностики
2️⃣ Disk Writes
Помогает понимать что происходит с чрезмерными операциями на диск. Такие влияют на перфоманс и батарею
3️⃣ Energy & Battery Usage
Для оценки нулевого выброса углерода вашего устройства.
4️⃣ App Launch
Одна из самых полезных метрик для оценки запуска приложения
5️⃣ Hang Rate & Scroll Hitches
Трекинг зависаний основного потока. Есть множество способов это сделать:
- синхронный доступ к вводу/ввыводу в базу
- большие операции
- длительная обработка медиа декодинга
- regex и обработки текста
6️⃣ Memory
Ну и куда без оценки потребления памяти
Полезная настройка Claude.md для вашего агента
В видео про настройки аи агентов мы много обсуждали рабочий сетап и его важность. Теперь это отдельное ремесло где каждый сам настраивает удобную базу.
По своей глупости я забыл указать ссылку и многие ребята говорили, что списывали настройки с экрана💀
Там много полезной инфы. Особенно мне нравится, как Лёша описал нейронки инструкцию споров. Нейронки склоны потакать как неуверенный джун. Нахваливать вас и принимать любое ваше говнорешение. Это маркетинговая уловка послушного раба.
Нужно давать им разрешение спорить с вами и вашими хотелками.
Отличный тренажер к прожарке навыков.
В видео про настройки аи агентов мы много обсуждали рабочий сетап и его важность. Теперь это отдельное ремесло где каждый сам настраивает удобную базу.
По своей глупости я забыл указать ссылку и многие ребята говорили, что списывали настройки с экрана
Там много полезной инфы. Особенно мне нравится, как Лёша описал нейронки инструкцию споров. Нейронки склоны потакать как неуверенный джун. Нахваливать вас и принимать любое ваше говнорешение. Это маркетинговая уловка послушного раба.
Нужно давать им разрешение спорить с вами и вашими хотелками.
Отличный тренажер к прожарке навыков.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как устроена iOS-разработка в Wildberries & Russ - расскажут и покажут 22 апреля на iOS Meetup, офлайн и онлайн.
Судя по программе, будет не скучная теория, а нормальный разбор продакшена - я бы сходил хотя бы ради реальных кейсов.
В программе:
- автоматизация релизов: свой инструмент и масштабирование
- UI-тестирование: реальные проблемы и как их решали
- файловая система iOS: нюансы sandbox без воды
Спикеры - все топовые разработчики компании, которые этим занимаются каждый день. Регистрируйтесь, чтобы принять участие.
Судя по программе, будет не скучная теория, а нормальный разбор продакшена - я бы сходил хотя бы ради реальных кейсов.
В программе:
- автоматизация релизов: свой инструмент и масштабирование
- UI-тестирование: реальные проблемы и как их решали
- файловая система iOS: нюансы sandbox без воды
Спикеры - все топовые разработчики компании, которые этим занимаются каждый день. Регистрируйтесь, чтобы принять участие.
Performance Analytics
Аналитика перфоманса — сложное дело. Обычно здесь много переменных. Нельзя взять 1-2 айфона и на глаз протестировать на пару экранов с секундомером.
1️⃣ нужно реальное устройство
В симуляторах ресурсы шарятся с маком. Не то железо
А ту же скорость интернета даже проксименом нормально не отдебажишь.
2️⃣ правильные данные
Влияет множество сайдэффектов от прод сборки и состояния батареи до качества сети. Не то окружение.
3️⃣ чистота данных
Не все данные полезные и важны. Число и скорость в вакууме часто ни о чем не говорит.
Крупные компании создают сложную систему анализа перфоманса. Каждая метрика от скорости загрузки экрана до вызова ручки — отправляется на бэк. Там дашбордами можно составить график деградаций.
Автор статьи как раз рассказывает как писал такую систему.
Аналитика перфоманса — сложное дело. Обычно здесь много переменных. Нельзя взять 1-2 айфона и на глаз протестировать на пару экранов с секундомером.
1️⃣ нужно реальное устройство
В симуляторах ресурсы шарятся с маком. Не то железо
А ту же скорость интернета даже проксименом нормально не отдебажишь.
2️⃣ правильные данные
Влияет множество сайдэффектов от прод сборки и состояния батареи до качества сети. Не то окружение.
3️⃣ чистота данных
Не все данные полезные и важны. Число и скорость в вакууме часто ни о чем не говорит.
Крупные компании создают сложную систему анализа перфоманса. Каждая метрика от скорости загрузки экрана до вызова ручки — отправляется на бэк. Там дашбордами можно составить график деградаций.
Автор статьи как раз рассказывает как писал такую систему.