Mobile System Design: Идемпотентность
Слово идемпотентность чаще встречается в бэке и мало когда увидишь его в статьях или ресурсах мобильной разработки. Но это важное свойство хорошей системы.
Это очень важно, чтобы твоя система была стабильной. Как-то в 2019 году, непоставленный лоадер и дизеблинг кнопки оплаты и вывода средств, привели к издержкам компании.
Один юзер-микрочелик 13 лет решил вывести себе бабки в приложении для блогеров. Им начислялись деньги за приветы. Когда он нажимал на кнопку "вывести средства" запросы зависли и задублировали его общую сумму х3. На его счете условно было 10к, а получил 30к. Очевидно, никто у него назад бабки не потребовал, а разрабов этих кнопок и ручек наказали.
Повезло, что масштабы не такие большие и компании пришлось отказаться от маленькой суммы денег. Но такое непростительно в рамках больших цифр.
Чтобы не допускать таких ошибок нужно всегда помнить об идемпотентности. Разберем на скринах. Код не продовый, а концептуальный.
💎 Подробная статья с еще большими примерами в закрытой базе. Получи материал по скидке 💰 тут или ⭐️ тут. Сегодня последний день.
Слово идемпотентность чаще встречается в бэке и мало когда увидишь его в статьях или ресурсах мобильной разработки. Но это важное свойство хорошей системы.
🟣 Идемпотентное действие – если ты нажимаешь кнопку несколько раз подряд, но свет включается только один раз и не меняет своего состояния снова и снова.🔘 Неидемпотентное действие – если ты заказываешь пиццу по телефону, и из-за плохой связи твое сообщение дублируется. В итоге тебе привозят две пиццы вместо одной😨
Это очень важно, чтобы твоя система была стабильной. Как-то в 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
Как проводить собеседования интересно и продуктивно
Я накопил много вопросов к текущим системам найма и перфоманс ревью в индустрии. Определенно точно система сломана и никто не хотел ее чинить, пока не пришли хакеры собесов и не заабузили её.
Я не поддерживаю их и стилистически мне это не близко. Я убежден, что доламывать и абузить систему за 10-50к руб. — неэффективный путь. Гораздо лучше сотрудничество для уникальных льгот и выгодные союзы для создания сильных продуктов. Мы все живем в одном общежитии.
Как я уже сказал фикс найма стал отдельной нишей, где многие инженеры могут помочь бизнесу и себе стать лучше. Некоторые компании активно развиваются и создают целые направления. Это глобальный тренд во всем мире.
Одни занимаются обучением интервьюеров, объясняют метрики и вес оценок. Учат как задавать вопросы кандидату, чтобы ломался speech to text чатгпт. Другие создают инструменты: редакторы кода с отслеживанием курсора и вкладок браузера, логгеры, системы оценки задач.
Ну а мы занимаемся отчасти контентом и подборками самых практичных и адекватных задач и вопросов😏 Мы поднимали тему идеального собеса с руководителем из Яндекса и лидом Авито. А также копаем глубже и не являемся просто зеваками. Как я уже раньше писал, мое образование дал не универ, а практика и компании. Значит я хочу улучшить его качество.
Я хочу найти и предложить более эффективную систему развития и оценки коммерческого инженера. Кто еще это сделает лучше, чем практикующие эксперты? Эффективные менеджеры, блогеры, инфоцыгане, новички? Нужны практики.
Даже на конфах тема собесов начала быть популярна. Вот в этом докладе автор с большим опытом из SberDevice рассказывает как типовые собесы хакаются на изи. Независимо собеситесь вы на iOS или Android. Текущий рынок никак не оценивает реальные навыки, а только как человек подготовился к "экзамену". Но говорит ли экзамен, что вы хороший эксперт? Конечно же нет, вспомните водительские курсы или английский, когда отличная оценка на экзамене не говорит ни о чем.
Говорить, что таким подходом легко ошибиться в найме — ничего не говорить.
Бизнес начал усложнять перфоманс ревью и внутренние системы роста, но совсем забыл про парадную дверь. Вы не поверите как у многих крупных компаний банк вопросов не менялся 3-4 лет. Где множество инженеров просто легко апнутся уйдя в другую или вашу компанию через собес.
Повышается ли доверие к таким системам? Хотели бы вы жить с вечным синдромом самозванца, что ваш результат и рост реальный, а не случайный или фейковый? Вопросы риторические.
Я накопил много вопросов к текущим системам найма и перфоманс ревью в индустрии. Определенно точно система сломана и никто не хотел ее чинить, пока не пришли хакеры собесов и не заабузили её.
Я не поддерживаю их и стилистически мне это не близко. Я убежден, что доламывать и абузить систему за 10-50к руб. — неэффективный путь. Гораздо лучше сотрудничество для уникальных льгот и выгодные союзы для создания сильных продуктов. Мы все живем в одном общежитии.
Как я уже сказал фикс найма стал отдельной нишей, где многие инженеры могут помочь бизнесу и себе стать лучше. Некоторые компании активно развиваются и создают целые направления. Это глобальный тренд во всем мире.
Одни занимаются обучением интервьюеров, объясняют метрики и вес оценок. Учат как задавать вопросы кандидату, чтобы ломался speech to text чатгпт. Другие создают инструменты: редакторы кода с отслеживанием курсора и вкладок браузера, логгеры, системы оценки задач.
Ну а мы занимаемся отчасти контентом и подборками самых практичных и адекватных задач и вопросов
Я хочу найти и предложить более эффективную систему развития и оценки коммерческого инженера. Кто еще это сделает лучше, чем практикующие эксперты? Эффективные менеджеры, блогеры, инфоцыгане, новички? Нужны практики.
Даже на конфах тема собесов начала быть популярна. Вот в этом докладе автор с большим опытом из SberDevice рассказывает как типовые собесы хакаются на изи. Независимо собеситесь вы на iOS или Android. Текущий рынок никак не оценивает реальные навыки, а только как человек подготовился к "экзамену". Но говорит ли экзамен, что вы хороший эксперт? Конечно же нет, вспомните водительские курсы или английский, когда отличная оценка на экзамене не говорит ни о чем.
Говорить, что таким подходом легко ошибиться в найме — ничего не говорить.
Бизнес начал усложнять перфоманс ревью и внутренние системы роста, но совсем забыл про парадную дверь. Вы не поверите как у многих крупных компаний банк вопросов не менялся 3-4 лет. Где множество инженеров просто легко апнутся уйдя в другую или вашу компанию через собес.
Повышается ли доверие к таким системам? Хотели бы вы жить с вечным синдромом самозванца, что ваш результат и рост реальный, а не случайный или фейковый? Вопросы риторические.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Максим Сидоров — Как проводить собеседования интересно и продуктивно
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
Скачать презентацию с сайта Mobius —
Очень часто собеседования бывают скучными и однообразными. У кандидатов возникает эффект дежавю, потому что везде им задают одни и те же избитые, типовые вопросы.…
— —
Скачать презентацию с сайта Mobius —
Очень часто собеседования бывают скучными и однообразными. У кандидатов возникает эффект дежавю, потому что везде им задают одни и те же избитые, типовые вопросы.…
Стажёр Вася и его истории об идемпотентности API
Продолжая тему про идемпотентность в комментарии прошлого поста скинули крутейшую статью от Яндекса. Доходчиво объяснили зачем и на что смотреть даже отправляя очень простой, но важный запрос.
Статья для бэкендеров, но инженер высоких грейдов должен уметь понимать работу смежных платформ. Подсказать начинающему бэкендеру где он ошибается и помнить, что один лоадер на кнопки не решит проблему.
Как решают почти ту же проблему с дублированием заказов:
🟣 Как блокировки кнопки недостаточно для решения многих проблем
🟣 Какие гонки бывают между бэком и клиентом
🟣 Как ключ идемпотентности помогает решить такие задачи.
Статья супер топовая. Советую для чтения, если вы правда еще убеждены, что блокировка кнопки или лоадер спасет вас от всех проблем👨🍳
Ну и для опыта понимания чужого опыта тоже полезно.
Продолжая тему про идемпотентность в комментарии прошлого поста скинули крутейшую статью от Яндекса. Доходчиво объяснили зачем и на что смотреть даже отправляя очень простой, но важный запрос.
Статья для бэкендеров, но инженер высоких грейдов должен уметь понимать работу смежных платформ. Подсказать начинающему бэкендеру где он ошибается и помнить, что один лоадер на кнопки не решит проблему.
Как решают почти ту же проблему с дублированием заказов:
Статья супер топовая. Советую для чтения, если вы правда еще убеждены, что блокировка кнопки или лоадер спасет вас от всех проблем
Ну и для опыта понимания чужого опыта тоже полезно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Стажёр Вася и его истории об идемпотентности API
Идемпотентность — звучит сложно, говорят о ней редко, но это касается всех приложений, использующих API в своей работе. Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси....
В боевых искусствах самураев мастерство владения луком было в почете. Лук был символом чести и мастерства. Стрелять из лука — сложное искусство. Оно требовало многолетней практики, имело почет и традиции. Лишь избранный смог овладеть этим ремеслом.
Но пришли португальцы и привезли аркебузы. Они не требовали многолетней подготовки, любой пьянчуга мог легко порешать великого воина. Пробить доспехи и не нужна хорошая физическая подготовка. Лучше старенький тт чем дзюдо и карате.
Цена высокомерия некоторых самураев и их консервативность была высокой. Насколько же мог быть эффективным тот самурай, что смог быть мобильным и использовал свой военный талант, чтобы обучиться стрелять из ружья? Эти истории мне напоминают то, что сегодня происходит с программированием.
Вокруг AI до сих пор стоит скепсис. Аркебуза дикарей не стоит времени. Но она все также доступна, проста и разрушительна для старых подходов. Люди отказываются от его применения, что может стоить высокой цены. Многие до сих пор считают это пузерым, хотя я считаю, что за этим будущее.
Я сам стараюсь напоминать себе: не быть тем, кто держится за прошлое лишь потому, что в нём чувствует себя уверенно. Мир меняется — и побеждают не те, кто лучше всех освоил старое, а те, кто вовремя принял новое.
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучшее приложение Яндекса
Anonymous Poll
5%
Авто.ру
5%
Яндекс Pay
32%
Яндекс Музыка
42%
Яндекс Карты
6%
Яндекс Браузер
9%
Яндекс Еда
30%
Яндекс Такси
5%
Яндекс Маркет
18%
Кинопоиск
11%
Другое
System design interview checklist
Наш подписчик сделал небольшой, но полезный чеклист для подготовки к мобильному систем дизайну.
В нем емко и удобно разделены важные темы:
🔘 Функциональные и нефункциональные требования
🔘 API
🔘 UI
🔘 Security
🔘 Пуши
И многое другое
Полезно, когда вы проектируете фичу и не хотите что-то упустить.
Наш подписчик сделал небольшой, но полезный чеклист для подготовки к мобильному систем дизайну.
В нем емко и удобно разделены важные темы:
И многое другое
Полезно, когда вы проектируете фичу и не хотите что-то упустить.
Please open Telegram to view this post
VIEW IN TELEGRAM
Gist
System design interview checklist
System design interview checklist. GitHub Gist: instantly share code, notes, and snippets.
1 14
Media is too big
VIEW IN TELEGRAM
Еще в 2021 году, преподавая в разных школах программирования и только начиная вести этот канал, я сделал роадмап для начинающих iOS разрабов. Кто-то даже учился по нему задолго, как нашел этот канал.
Многие меня просили сделать расширенную версию: с полезными ссылками, задачами с реальным опытом. Наконец, я снова решил сделать часть контента для новичков или тех, кто решил системно подойти к закреплению.
До этого я всегда делал контент для midlle+ и senior разработчиков, но пришло время сделать и дружелюбный контент. Погрузиться в основы и азы.
Этот roadmap создан для тех, кто:
Пока я не видел хорошие роадмапы, которые помогают подготовиться именно под реальность СНГ разработки и их требований, чаще это набор из чужих статей или визуализация документаций от тех, кто либо уже не практикует, либо работает на западные стартапы, либо только начинает развиваться и создает свой роадмап.
Такие роадмапы могут быть полезны, но все же в них есть примесь, либо нет нужной глубины, понимания специфик и требований. Я сам делал такой же и оглядываясь назад понимаю, что это как демо-версия или MVP продукта. Где ты без нужного опыта, в процессе самообучения, делаешь шпаргалку.
Я начал большой новый раздел, который аккуратно заонбордить в огромную базу знаний, которая копилась больше года. Здесь будут собираться:
Здесь же я хочу сделать емкий и полезный материал, который копился годами. Он соберет в общую структуру и сделает проще по форме изучение всей базы.
Работа на roadmap'ом только начинается. Но впереди тоже много идей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Polymorphic Blueprint (ƛѕtɛmiɾ)
Swift – больше, чем язык для iOS | Для чего нужен язык Свифт | Podlodka Podcast #417
Максимальный репост, Глеб @glukianets молодец большой!
p.s. кивордов уже 219 ;)
p.s. 2.27 мало! Надо 5 часовую версию
@contravariance
Максимальный репост, Глеб @glukianets молодец большой!
p.s. кивордов уже 219 ;)
p.s. 2.27 мало! Надо 5 часовую версию
@contravariance
Карьерные советы в 2025
ИТ сильно меняется. Оно перестало быть комфортным местом, где люди чилят на рабочем месте и меняют работу за день каждый год.
В статьях авторы дают анализ рынка и что с ним происходит, а также советы, которые помогут делать адекватные решения:
🟣 Смена приоритетов для руководителей
В период с 2010 по 2020 годы менеджеры оценивались по их способности нанимать, удерживать и мотивировать команды. С появлением LLM все изменилось. Теперь нужно уметь не только менеджерить, но и иметь хорошие технические скиллы.
🟣 Влияние новых технологий на стратегию компаний
Простое внедрение API от OpenAI недостаточно. От программистов теперь важна бизнес-ориентированность. Понимание как и где можно эффективно внедрить технологии.
В статье "The good times in tech are over" же говорится:
🟣 Изменение экономической среды
В 2010-х годах низкие процентные ставки позволяли инвесторам активно вкладываться в технологические компании, что приводило к быстрому найму и щедрым условиям для сотрудников. Однако с ростом процентных ставок около 2023 года компании стали уделять больше внимания прибыльности, сокращая расходы и оптимизируя ресурсы.
🟣 Необходимость адаптации инженеров
Инженерам важно осознать текущие приоритеты своих компаний и стремиться приносить ощутимую пользу в этих областях. Продолжение работы над проектами, не соответствующими новым приоритетам, может негативно сказаться на их карьере.
🟣 Переоценка ценностей
Период изобилия в технологической отрасли завершился, и теперь компании действуют в более реалистичных условиях, где успех зависит от способности приносить реальную пользу бизнесу, а не от участия в многочисленных инициативах.
ИТ сильно меняется. Оно перестало быть комфортным местом, где люди чилят на рабочем месте и меняют работу за день каждый год.
В статьях авторы дают анализ рынка и что с ним происходит, а также советы, которые помогут делать адекватные решения:
В период с 2010 по 2020 годы менеджеры оценивались по их способности нанимать, удерживать и мотивировать команды. С появлением LLM все изменилось. Теперь нужно уметь не только менеджерить, но и иметь хорошие технические скиллы.
Простое внедрение API от OpenAI недостаточно. От программистов теперь важна бизнес-ориентированность. Понимание как и где можно эффективно внедрить технологии.
В статье "The good times in tech are over" же говорится:
В 2010-х годах низкие процентные ставки позволяли инвесторам активно вкладываться в технологические компании, что приводило к быстрому найму и щедрым условиям для сотрудников. Однако с ростом процентных ставок около 2023 года компании стали уделять больше внимания прибыльности, сокращая расходы и оптимизируя ресурсы.
Инженерам важно осознать текущие приоритеты своих компаний и стремиться приносить ощутимую пользу в этих областях. Продолжение работы над проектами, не соответствующими новым приоритетам, может негативно сказаться на их карьере.
Период изобилия в технологической отрасли завершился, и теперь компании действуют в более реалистичных условиях, где успех зависит от способности приносить реальную пользу бизнесу, а не от участия в многочисленных инициативах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Lethain
Career advice in 2025.
Yesterday, the tj-actions repository, a popular tool used with Github Actions was compromised (for more background read one of these two articles). Watching the infrastructure and security engineering teams at Carta respond, it highlighted to me just how…
Код должен быть понятным человеку. Краткость — не самоцель. Понятность важнее.
“Clean Code” — Роберт Мартин
Продолжаю перечитывать книгу и хотел затронуть эту тему. Мы уже делали опрос ранее и выяснили, что лаконичность не всегда хорошо. Иногда лучше добавить чуть больше деталей или использовать понятные конструкции, чем сократить код до минимума.
«Стремясь уменьшить объем кода наших классов и методов, мы можем наплодить слишком много крошечных классов и методов»
Рефакторинг точно входит в топ задач разрабов. Их дают как в жизни, так и на интервью. Кандидату дают плохой код с пометкой "его писал джун" и просят его переписать. Так оценивается насмотренность кандидата и его понимание стандартов качество, много ли комментариев придется писать ему на ревью.
В крупных компаниях может быть до 50-100 реквестов в день и кодревью занимает очень много времени. Это большая и долгая работа. Требует как высоких технических навыков, так и коммуникативных, чтобы ни с кем не посраться.
Мы уже разбирали задачи с рефакторингом кода:
Давайте разберем на скриншотах детальней.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Позаботимся о памяти при использовании value-типов
Прикольный доклад, где поднимается тема некопируемых типов в реальном проекте. Совсем недавно в большом цикле про память их уже обсудили в рамках статей, и даже делали тестовые примеры. А уже это рассказывают на докладах. Ребята из озона хорошо раскрыли тему как это все помогает на практике. Плюс одна большая тема для обсуждений на собесах😂
🟣 Как некопируемые типы помогают в разработке
🟣 Зачем некопируемый тип использовать в запросах
🟣 Как это всё помогает в пагинации и сокетах
🟣 Как связан Rust и Swift
Мне же не хватило больше метрик и более осязаемых результатов: пользовательский опыт или отзывы разрабов, скорость билда, перфоманс, продуктовые метрики.
Еще больше информации про некопируемые типы:
- consume noncopyable types in Swift
- ~Escapable
Прикольный доклад, где поднимается тема некопируемых типов в реальном проекте. Совсем недавно в большом цикле про память их уже обсудили в рамках статей, и даже делали тестовые примеры. А уже это рассказывают на докладах. Ребята из озона хорошо раскрыли тему как это все помогает на практике. Плюс одна большая тема для обсуждений на собесах
Мне же не хватило больше метрик и более осязаемых результатов: пользовательский опыт или отзывы разрабов, скорость билда, перфоманс, продуктовые метрики.
Еще больше информации про некопируемые типы:
- consume noncopyable types in Swift
- ~Escapable
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Алексей Таран — Позаботимся о памяти при использовании value-типов
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
Скачать презентацию с сайта Mobius — https://jrg.su/HtMFMt
Начиная со Swift 5.9 миру была представлена концепция некопируемости для структур и перечислений. В числе возможных кейсов, где этот подход…
— —
Скачать презентацию с сайта Mobius — https://jrg.su/HtMFMt
Начиная со Swift 5.9 миру была представлена концепция некопируемости для структур и перечислений. В числе возможных кейсов, где этот подход…
Как эффективно работать со 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 🎟
Новый сезон онлайн-конференции 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 🎟