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: Идемпотентность

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

🟣Идемпотентное действие – если ты нажимаешь кнопку несколько раз подряд, но свет включается только один раз и не меняет своего состояния снова и снова.

🔘Неидемпотентное действие – если ты заказываешь пиццу по телефону, и из-за плохой связи твое сообщение дублируется. В итоге тебе привозят две пиццы вместо одной 😨

Это очень важно, чтобы твоя система была стабильной. Как-то в 2019 году, непоставленный лоадер и дизеблинг кнопки оплаты и вывода средств, привели к издержкам компании.

Один юзер-микрочелик 13 лет решил вывести себе бабки в приложении для блогеров. Им начислялись деньги за приветы. Когда он нажимал на кнопку "вывести средства" запросы зависли и задублировали его общую сумму х3. На его счете условно было 10к, а получил 30к. Очевидно, никто у него назад бабки не потребовал, а разрабов этих кнопок и ручек наказали.

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

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

💎 Подробная статья с еще большими примерами в закрытой базе. Получи материал по скидке 💰 тут или ⭐️ тут. Сегодня последний день.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Как проводить собеседования интересно и продуктивно

Я накопил много вопросов к текущим системам найма и перфоманс ревью в индустрии. Определенно точно система сломана и никто не хотел ее чинить, пока не пришли хакеры собесов и не заабузили её.

Я не поддерживаю их и стилистически мне это не близко. Я убежден, что доламывать и абузить систему за 10-50к руб. — неэффективный путь. Гораздо лучше сотрудничество для уникальных льгот и выгодные союзы для создания сильных продуктов. Мы все живем в одном общежитии.

Как я уже сказал фикс найма стал отдельной нишей, где многие инженеры могут помочь бизнесу и себе стать лучше. Некоторые компании активно развиваются и создают целые направления. Это глобальный тренд во всем мире.

Одни занимаются обучением интервьюеров, объясняют метрики и вес оценок. Учат как задавать вопросы кандидату, чтобы ломался speech to text чатгпт. Другие создают инструменты: редакторы кода с отслеживанием курсора и вкладок браузера, логгеры, системы оценки задач.

Ну а мы занимаемся отчасти контентом и подборками самых практичных и адекватных задач и вопросов 😏 Мы поднимали тему идеального собеса с руководителем из Яндекса и лидом Авито. А также копаем глубже и не являемся просто зеваками. Как я уже раньше писал, мое образование дал не универ, а практика и компании. Значит я хочу улучшить его качество.

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

Даже на конфах тема собесов начала быть популярна. Вот в этом докладе автор с большим опытом из SberDevice рассказывает как типовые собесы хакаются на изи. Независимо собеситесь вы на iOS или Android. Текущий рынок никак не оценивает реальные навыки, а только как человек подготовился к "экзамену". Но говорит ли экзамен, что вы хороший эксперт? Конечно же нет, вспомните водительские курсы или английский, когда отличная оценка на экзамене не говорит ни о чем.

Говорить, что таким подходом легко ошибиться в найме — ничего не говорить.

Бизнес начал усложнять перфоманс ревью и внутренние системы роста, но совсем забыл про парадную дверь. Вы не поверите как у многих крупных компаний банк вопросов не менялся 3-4 лет. Где множество инженеров просто легко апнутся уйдя в другую или вашу компанию через собес.

Повышается ли доверие к таким системам? Хотели бы вы жить с вечным синдромом самозванца, что ваш результат и рост реальный, а не случайный или фейковый? Вопросы риторические.
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Стажёр Вася и его истории об идемпотентности API

Продолжая тему про идемпотентность в комментарии прошлого поста скинули крутейшую статью от Яндекса. Доходчиво объяснили зачем и на что смотреть даже отправляя очень простой, но важный запрос.

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

Как решают почти ту же проблему с дублированием заказов:
🟣Как блокировки кнопки недостаточно для решения многих проблем
🟣Какие гонки бывают между бэком и клиентом
🟣Как ключ идемпотентности помогает решить такие задачи.

Статья супер топовая. Советую для чтения, если вы правда еще убеждены, что блокировка кнопки или лоадер спасет вас от всех проблем 👨‍🍳

Ну и для опыта понимания чужого опыта тоже полезно.
Please open Telegram to view this post
VIEW IN TELEGRAM
14
🏹 Ружья и луки. Как погибли самураи и причем тут AI

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

Но пришли португальцы и привезли аркебузы. Они не требовали многолетней подготовки, любой пьянчуга мог легко порешать великого воина. Пробить доспехи и не нужна хорошая физическая подготовка. Лучше старенький тт чем дзюдо и карате.

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

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

Я сам стараюсь напоминать себе: не быть тем, кто держится за прошлое лишь потому, что в нём чувствует себя уверенно. Мир меняется — и побеждают не те, кто лучше всех освоил старое, а те, кто вовремя принял новое.
Please open Telegram to view this post
VIEW IN TELEGRAM
151
"Clean Code" R. Martin
443
🌏🦖❣️
Please open Telegram to view this post
VIEW IN TELEGRAM
4874
System design interview checklist

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

В нем емко и удобно разделены важные темы:
🔘Функциональные и нефункциональные требования
🔘API
🔘UI
🔘Security
🔘Пуши
И многое другое

Полезно, когда вы проектируете фичу и не хотите что-то упустить.
Please open Telegram to view this post
VIEW IN TELEGRAM
114
Media is too big
VIEW IN TELEGRAM
🧬 Анонс нового блока в закрытой базе: Roadmap iOS инженера

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

Многие меня просили сделать расширенную версию: с полезными ссылками, задачами с реальным опытом. Наконец, я снова решил сделать часть контента для новичков или тех, кто решил системно подойти к закреплению.

До этого я всегда делал контент для midlle+ и senior разработчиков, но пришло время сделать и дружелюбный контент. Погрузиться в основы и азы.

Этот roadmap создан для тех, кто:
🔘только начинает путь в iOS-разработке;
🔘хочет системно подтянуть знания;
🔘возвращается в мобильную разработку и хочет освежить базу.

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

Такие роадмапы могут быть полезны, но все же в них есть примесь, либо нет нужной глубины, понимания специфик и требований. Я сам делал такой же и оглядываясь назад понимаю, что это как демо-версия или MVP продукта. Где ты без нужного опыта, в процессе самообучения, делаешь шпаргалку.

Я начал большой новый раздел, который аккуратно заонбордить в огромную базу знаний, которая копилась больше года. Здесь будут собираться:
🟣Роадмапы на год по разным темам
🟣SwiftUI, UIKit и другой UI
🟣GCD, Swift Concurrency
🟣Разные роадмапы для прокачки инженерности
🟣Много ссылок и задач

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

Работа на roadmap'ом только начинается. Но впереди тоже много идей.
Please open Telegram to view this post
VIEW IN TELEGRAM
16542
Forwarded from Polymorphic Blueprint (ƛѕtɛmiɾ)
Swift – больше, чем язык для iOS | Для чего нужен язык Свифт | Podlodka Podcast #417

Максимальный репост, Глеб @glukianets молодец большой!

p.s. кивордов уже 219 ;)

p.s. 2.27 мало! Надо 5 часовую версию

@contravariance
21831
Карьерные советы в 2025

ИТ сильно меняется. Оно перестало быть комфортным местом, где люди чилят на рабочем месте и меняют работу за день каждый год.

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

🟣Смена приоритетов для руководителей
В период с 2010 по 2020 годы менеджеры оценивались по их способности нанимать, удерживать и мотивировать команды. С появлением LLM все изменилось. Теперь нужно уметь не только менеджерить, но и иметь хорошие технические скиллы.

🟣Влияние новых технологий на стратегию компаний
Простое внедрение API от OpenAI недостаточно. От программистов теперь важна бизнес-ориентированность. Понимание как и где можно эффективно внедрить технологии.

В статье "The good times in tech are over" же говорится:

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

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

🟣Переоценка ценностей
Период изобилия в технологической отрасли завершился, и теперь компании действуют в более реалистичных условиях, где успех зависит от способности приносить реальную пользу бизнесу, а не от участия в многочисленных инициативах.
Please open Telegram to view this post
VIEW IN TELEGRAM
8
⚔️ Краткость vs Понятность

Код должен быть понятным человеку. Краткость — не самоцель. Понятность важнее.
“Clean Code” — Роберт Мартин


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

«Стремясь уменьшить объем кода наших классов и методов, мы можем наплодить слишком много крошечных классов и методов»


Рефакторинг точно входит в топ задач разрабов. Их дают как в жизни, так и на интервью. Кандидату дают плохой код с пометкой "его писал джун" и просят его переписать. Так оценивается насмотренность кандидата и его понимание стандартов качество, много ли комментариев придется писать ему на ревью.

В крупных компаниях может быть до 50-100 реквестов в день и кодревью занимает очень много времени. Это большая и долгая работа. Требует как высоких технических навыков, так и коммуникативных, чтобы ни с кем не посраться.

Мы уже разбирали задачи с рефакторингом кода:
🟣Задачи на рефакторинг нетворк слоя на Swift
🟣Задачи на рефакторинг ч. 1

Давайте разберем на скриншотах детальней.

💎 Потренироваться с задачами на рефакторинг можно 💰 тут или ⭐️ тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11
Позаботимся о памяти при использовании value-типов

Прикольный доклад, где поднимается тема некопируемых типов в реальном проекте. Совсем недавно в большом цикле про память их уже обсудили в рамках статей, и даже делали тестовые примеры. А уже это рассказывают на докладах. Ребята из озона хорошо раскрыли тему как это все помогает на практике. Плюс одна большая тема для обсуждений на собесах 😂

🟣Как некопируемые типы помогают в разработке
🟣Зачем некопируемый тип использовать в запросах
🟣Как это всё помогает в пагинации и сокетах
🟣Как связан Rust и Swift

Мне же не хватило больше метрик и более осязаемых результатов: пользовательский опыт или отзывы разрабов, скорость билда, перфоманс, продуктовые метрики.

Еще больше информации про некопируемые типы:
- consume noncopyable types in Swift
- ~Escapable
Please open Telegram to view this post
VIEW IN TELEGRAM
95
Как эффективно работать со SwiftUI в продакшене? Внедрение в существующие проекты, тестирование, производительность, архитектура — вопросов по-прежнему много. Как сделать так, чтобы всё работало?

Новый сезон онлайн-конференции Podlodka iOS Crew (31 марта – 4 апреля) будет посвящен SwiftUI.
Глубокие доклады, технические разборы и реальные кейсы от опытных разработчиков. Сессии идут утром и вечером, можно совмещать с работой.

💡 Где печется SwiftUI — Георгий Остроброд (JigSpace, Latook Software) объяснит, как связаны SwiftUI и Metal, и покажет магию визуальных эффектов.

🛠 Как макросы изменили навигацию — Михаил Рубанов (Dodo Engineering) покажет, как макросы упрощают код, помогают объединять SwiftUI и UIKit и создают удобную навигацию, которую легко тестировать.

🏗 Архитектурные паттерны в SwiftUI — Борис Бугор (Aiphoria.AI) сравнит MVVM, Redux и TCA, чтобы выбрать лучший подход к управлению состоянием.

🔄 Из SwiftUI в UIKit и обратно — Дмитрий Куркин (Xymatic) разберёт грамотную интеграцию этих фреймворков без хаков.

Конференция сосредоточена на практической пользе – всё, что узнаете, можно сразу применять в работе.

👉 Билеты и подробности: https://podlodka.io/ioscrew 🎟
2