iOS Makes Me Hate
3.94K subscribers
1.16K photos
169 videos
15 files
1.33K links
Авторский канал про iOS разработку. Путь продуктовых самураев в MAANG.

Самое больше iOS сообщество практиков: https://boosty.to/lionbond/

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
🚘🚘 Золотые правила по Mobile System Design Interview

Уже как пару лет сеньорность оценивается только одним собесом. Каждая компания его называет по-разному: архитектуры, проектирование, system design.

Но вокруг него все равно много заблуждений у начинающих и разные интерпритации у опытных. Мы даже делали интервью с фуллстэк-тимлидом Авито каким он видит идеальный систем дизайн.

Джун пишет функции. Мидл делает фичи. Сеньор отвечает за то, чтобы всё это работало стабильно, масштабировалось. А главное чтобы это работало долго и не ломалось. Никаких костылей.

Ключевое отличие мидла+ от сеньора — это системное мышление. На собесе мы оцениваем насколько кандидат "ресурсный инженер".

Автор собрал большой список требований, которые могут спросить вас на интервью:
🟣Техники сбора требований
🟣Проектирование API
🟣Пагинация
🟣Оффлайн и реалтайм доступ
🟣Компоненты и дизайн система

И многое другое.
Please open Telegram to view this post
VIEW IN TELEGRAM
8
🌄 Сode of Honour

Инженерная культура это не только про код. Особенно с развитием ИИ стали важны софты.

Говорить, что программисты фильтруют друг друга только по тех.скилла — значит врать. Техническая оценка - это только 1/4 часть. Для нас немаловажно разделять "свой/чужой" и по ненормированным кодексам. Их хитро мы называем "финалка", "поведенческое интервью" или "culture fit".

Попалась старая статья, которая отражает бессмертные принципы. Они до сих пор актуальны и в программировании:

1. Результат моей работы является отражением моего мастерства. Лично я отождествляю это с качеством.
2. Если я взял на себя обязательства по проекту и срокам, то я должен сделать всё возможное, чтобы сдержать своё слово.
3. Я открыто признаю случаи, когда я что-либо не понимаю.
4. Иерархии не оказывают большого влияния на ход обсуждения. Значение имеет вес аргумента, а не служебное положение говорящего.
5. Время моего коллеги, по крайней мере, столь же драгоценно, как и моё собственное.
6. Я делаю заметки, если кто-то даёт мне разъяснения. Я избегаю задавать дважды один и тот же вопрос.
7. Я прилагаю все усилия, если коллега меня просит о помощи; департамент, отдел и местонахождение значения не имеют.
8. Я, насколько это возможно, делаю лёгким использование моей работы в дальнейшем посредством документирования и структурирования кода. Так я минимизирую трудозатраты тех, кто хочет использовать мою работу – они обращаются ко мне только в случае крайней необходимости.
9. Я поддерживаю новых коллег как морально, так и технически.
Please open Telegram to view this post
VIEW IN TELEGRAM
214
💎 Swift Concurrency: Полезные ссылки для старта изучения

Ближайший месяц буду много писать про SwiftUI + SC. Есть две причины:

1️⃣ Как я уже говорил на моем текущем проекте много прикольных штук. Одна из таких — это Swift Concurency. Используется почти везде. Для бигтехов это вообще редкость. Слышал в тиньке его так и не разрешили использовать (Уверен, на это есть какие-то причины). Но у меня есть возможность здорово прокачаться на крутых задачах.

2️⃣ Мой знакомый, сеньор разраб из крупного бигтеха, ходил недавно на собес. Дали стандартную задачу на многопоточность. Он без труда решил с помощью GCD. Ему дали фидбэк "решил задачу на устаревших технологиях" и отказали. КЕК.

Рынок требует адаптаций. Но одно дело пробовать модные технологии на небольших или пет-проектах, а другое в крутых и больших продуктах с многомиллионой аудиторией и большой командой инженеров. Так ты можешь выжать все соки.

Забавно, что за почти 5 лет так и не нашел нормальных вводных подборок. Поэтому буду собирать самые интересные и полезные ссылки, которые реально помогут быстро вкатиться, но не потерять качество знаний:

1. Документация от Apple. Для тех, кто хочет изучить основы.

2. Ютуб ролики Swift Concurrency. Для самых маленьких.

3. WWDC: Meet async/await in Swift. Для тех, кому интересно смотреть сначала.

4. WWDC: Swift concurrency: Behind the scenes. Для тех, кто хочет погрузиться вглубь.

5. WWDC: Explore structured concurrency in Swift. Для структурного понимания

Ну и на десерт подборка пропосалов.
Swift Evolution Proposals:
SE-0296 — Async/await
SE-0306 — Actors
SE-0304 — Structured Concurrency
SE-0302 — Sendable and @Sendable closures
Please open Telegram to view this post
VIEW IN TELEGRAM
26
411
🏆 Конкурс исправь Singleton

Не секрет, что хоть сиглтон считается антипаттерном, но в iOS мы его встречаем везде. Это почти наш любимый паттерн. Многие ругают синглтон за множество проблем. Но проблемы ли это синглтона?

Давайте поиграем в игру. Кто кинет самое элегантное решение потокобезопасности синглтона тот получит телеграм премиум на месяц.

Условие победы:
- Скидываете в комменты самое элегантное решение
- получаете лайки

Лучшие решения вынесем на голосование.

Можно пользоваться любыми llm'ками

Конкурс заканчивается сегодня в 19:30 по мск
Please open Telegram to view this post
VIEW IN TELEGRAM
7
Прошел вайб-чек от команды Яндекс Вертикалей, кажется, мне пора в отпуск. Какие у вас результаты?

🆖 перейти в бота
Please open Telegram to view this post
VIEW IN TELEGRAM
54
Ну что, 19:30 наступило. Теперь нужна помощь оценить победителя.

Напомню, что задача была создать самое элегантное и рабочее решение.

Теперь вы решаете кто победитель.
Чей ответ вам больше всего нравится?
Final Results
19%
1
19%
2
14%
3
7%
4
7%
5
50%
6
9%
7
Об AI

Забавно, что в спорах про AI лучше всего сформулировали мысль представители творческой профессии. Возможно, в итшниках все меньше того самого «искусства». Пока одни спорят, что чатгпт отупляет мозг и отказываются к нему прикасаться, а другие бездумно копируют промты, креативные ребята нашли золотую середину.

Ведь пока итшникам не удалось так емко и хорошо упаковать ключевую мысль зачем же нужны нам все эти инструменты и как их правильно использовать

Наверное, этот скилл того самого мифического «творчества» будет все больше иметь в цене

Это как в ситуации с фотографией. Если дать в руки человеку без технического образования или без умения интуитивного поиска условный Хассельблад, а человеку с наличием навыков/вкуса/таланта/видения условный айфон, то понятно, у кого из них скорее всего получится выдающееся фото. У владельца Хассельблада разве что количество пикселей выиграет. Для обывателя (нормис?), впрочем, разницы может быть даже и не появится. Это как многие мои знакомые фотографы до сих пор встречают клиентов, с презрерием смотрящих на небольшой фотик, думая, что размер агрегата = гарантия качества.

Ровно та же ситуация с нейронками. Инструменты ограничены, безграничны только люди и их навыки и видение. Прикрепляю видео Зака Лондона, от которых у меня слюни текут при просмотре. Вот это - сочетание вкуса, навыков, фантазии, смелости, находчивости и изобретательности.

Человек использовал генератвивный инструментарий, чтобы создать действительно нечто завораживающее и атмосферное. В данном случае он использует много сторонних инструментов, помимо нейронок. Вмешивается цветокор, пленочный грейн, монтаж, смыслы. И артдирекшен. У человека есть видение, есть свой голос и попытка сделать «неидеальное», найти «живое» в неживом, потому эти работы стоят на тысячу ступеней выше всего, что сейчас делает большинство и выдают за «креативное» использование. Как пошутили где-то: уличные интервью с ИИ = Гарри Поттер в разных брендах.

можно ввести тысячу промтов, но нейронка так и не выдаст тебе девушку с горбинкой на носу, потому что она способа лишь на усредненный «идеализированный» вариант. И большинство тех, кто сейчас «творит» с помощью этих инструментов выдает ровно такой же усредненный вариант с идеальной композицией, светом и «кастингом». Важно уметь использовать готовое и получать то, что будет отражать вас, а не способности инструмента, даже если в наборе - усредненный синтетический материал.

Любой автор - это не сумма технических навыков, это высота громкости его голоса, обширность его опыта и острота угла его взгляда, а вот инструмент это уже помощник раскрытия потенциала и видения. Как говорится, если хочешь писать как Хэмингуэй, изучай вообще все, кроме письма. С нейронками та же история, это всего лишь инструмент, главное - человек, который использует этот инструмент.


Взято @shishkino
14
🎒 Сборник задач по синхронизации асинхронных тасок: GCD

Результат опроса выше показал, что не время хоронить GCD и считать его устаревшим. Это вам не NSOperations.
Я давно потихоньку собирал задачи на синхронизацию тасок и решил поделиться ими в ноушене.

Полезно для тех, кому запрещено использовать Swift Concurrency на проекте 😂

- Изучим concurrentPerform, OSAtomicIncrement32, atomic, lazy
- Поизучаем проблему синглтонов и многопоточности
- Узнаем как объединять запросы или делать их последовательными
- Изучим классическую Producer-Consumer проблему
- а также другое

Получить доступ 💰тут или ⭐️ тут
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Как перевезти 250+ SPM модулей из динамики в статику и не сойти с ума

Продолжая тему модуляризации нельзя не затронуть тему линковки модулей.

Модуляризация не ограничивается вопросом "в какой модуль класть фичи, а в какой бизнес-логику?". Ведь помимо чистой структуры и ответственностей команд есть еще один её важный плюс. Это скорость запуска и оптимизация приложения за счет разделения модулей на динамические или статические библиотеки.

Это всегда большой объем работы:
- нужно настроить кучу модулей
- подружить их вместе и не посраться с другими командами
- ничего не сломать
- а также затрекать правильные метрики, чтобы вся работа не была вредной

Классный доклад, если хотите узнать как решают такие задачи в крупных проектах. Или если вы плохо представляете зачем это нужно и почему сложно.
93
Forwarded from Media Rare
#технологии #AI #WWDC

На прошлой неделе Apple выпустила научную работу The Illusion of Thinking. В ней двигают мысль, что, большие модели — не такие уж и умные. В рассказе приводится детская головоломка "Ханойские башни", башенка где блинчики нужно переложить с одного штырька через второй, на третий. И там все модели ломаются на восьмом блинчике.

Через пару дней довольно слабый(исключительно имхо) WWDC, где Apple Intelligence все еще пытается скрыть, что ничего не умеет кроме фона в чатах и вызову chatGPT.

А ещё через двое суток выходит o3pro от OpenAI — и интернет заполняется видео, как он решает десятиблинчиковую головоломку за 13 минут.

Красиво.

Остался один вопрос: у кого на самом деле illusion of thinking ?)

@media_rare
5
🍝 У Яндекс Еды появился AI-ассистент — теперь проще выбрать, где поесть

Новый помощник подскажет, куда сходить с друзьями, где заказать ужин или какой ресторан подойдет для семейного обеда.


Ассистент ориентируется на ваш запрос и предлагает варианты по району, бюджету и атмосфере. Всё — на основе живых данных, отзывов и подборок. Пока работает в Москве, но появится и в других городах.
3