iOS Makes Me Hate – Telegram
iOS Makes Me Hate
4.09K subscribers
1.31K photos
189 videos
24 files
1.44K links
Авторский канал про iOS разработку. Путь продуктовых самураев в MAANG.

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK

Самое большое сообщество практиков: https://boosty.to/lionbond
Download Telegram
Почему проверка email регекспом — не задача клиента

Сегодня на созвоне комьюнити (делать созвоны на 2 часа в 10 утра субботы я больше не буду) мы обсудили много вопросов про систем дизайн: метрики, компромиссы, архитектуры, много обсуждали BDUI и даже его запроектировали.

Разберём безобидную идею — сложная проверка email на клиентах (iOS/Android/Web) в форме регистрации.

Одно из правил проектирования "Всё, что влияет на безопасность, деньги и целостность данных, обязательно проверять на сервере". Почему?
🟣Безопасность. Мы можем долго говорить про фишинг и реверс-инжиниринг, но правила проверок всегда видны атакующему. Для почты это не всегда важно, но все же.
🟣Слишком много реализаций. Три платформы — три реализации. Легко получить расхождения.
🟣Бизнес правила всегда идут от сервера: формат, уникальность, email/телефон/username, блокировки, инвайты, доступность региона. Это все относится к валидации.
🟣Единая точка правды. На бэкенде проще логировать попытки, строить алерты, включать капчу

Конечно, не стоит выносить ВСЮ проверку на пробелы, очевидные ошибки на сервер (хотя на проверке это тоже нужно делать). Но валидация на клиенте — это только легкий UX и простые подсказки юзеру.

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

Наша экспертиза не строится на "я всемогущ", а на "я знаю, что нужно". Именно так определяется сложность и навык. Упростить все по максимуму и оставить только необходимую сложность.
Please open Telegram to view this post
VIEW IN TELEGRAM
15
🚩 System Design собесы: Красные флаги

Еще одну тему которую мы обсуждали на прошлом созвоне — это правильные или неправильные ответы на интервью. Что есть редфлаги и как их не допустить не только на собесе, но и в жизни?

Как мы уже определили:
Ключевая метрика сеньора — умение системно мыслить и работать в условиях неопределенности.
Он не ждёт инструкций, а сам формулирует проблему, принимает решения и ведёт проект.


Инженера оценивают не по знанию паттернов и SOLID, а мышлению и способности строить системы. Я собрали и структурировал основные редфлаги инженера.

Статью подробнее c другими примерами можно почитать в закрытом ноушене, но здесь поделюсь основными критериями.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
136
Плюс в чат если бежишь вставлять в апку божественный стеклянный дизайн

UPD: знаете, что даже цвета иконок влияют на конверсии? Хочу услышать истории про такие кейсы
20
System Design: Правила декомпозиции при разработке фичи

В прошлом опросе топ 2 тема по интересу — это декомпозиция задачи. И не в том смысле, как поделить задачу в jira-трекере. А как правильно разделить её в коде. И это не про «выбери между очередным MV(X) паттерном». Декомпозиция более обширный термин и зависит от многих переменных.

Например, одно из самых ужасных для меня архитектурных решений — это класть все Service или даже ViewModel в одну папку. Огромный склад всех вьюмоделей, оторванных от своих блоков и бизнес-функций. Или же в VIPER все протоколы в один файл ModuleNameProtocols. Попробуй в этом разберись. Мы даже разбирали отдельный пост 2 года назад.

Вот вам дали разработать чат. С чего начнете? Будете делать шаблонами или оцените ситуацию? Начнете с нетворка или UI?

Многие начинают делать задачу с верстки, но даже когда еще мы читали книгу Mobile System Design, то разбирали — не торопись верстать.

Мы разберем сейчас самую базу, а потом подробнее пройдемся по:
- Layered Architecture
- многомодульной декомпозиции
- UDF декомпозиция
124
2025-10-21 19.39.40.jpg
129 KB
Задачи System Design: Чат, модуль Аналитики, Избранное

В прошлом году мы делали марафон по проектированию. И тогда участвовало почти 100 человек. Я решил что все же можно поделиться контентом оттуда и выбрать самые интересные варианты.
2041