Коллеги.
Мы с вами уже много и долго изучаем SC:
- копаем пропозалы
- лезем в компиляторы
- изучаем реальные практические задачи
Но так и не дошли до важного и базового вопроса: "А когда же юзать Акторы?".
Надо исправляться.
Собрали с комьюнити основные правила и полезные статьи:
- Protect mutable state with Swift actors
- Point Free: Concurrency
- Docs: Concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Ну и в честь праздника возвращаю долги.
Подборка задач для тех, кто собирается воевать с компилятором в Swift 6:
- @preconcurrency для старых библиотек
- MainActor + протокол UI-сервиса
- @Sendable
Please open Telegram to view this post
VIEW IN TELEGRAM
Месяц с whoop
Я уже месяц хожу с браслетом и в коментах прошлого поста обещал сделать обзор.
Ну че. Давайте.
Из плюсов:
- почти две недели батарея.
- нравится режим recovery. Осознанней относишься ко сну и отдыху.
- время стресса. Иногда бывали дни, когда я был в состоянии стресса по 4 часа. Это жестко. После них чаще начал себя ловить на пустых переживаниях. Помогает не злиться на долгие лифты :)
- Сон стал более качественным. Стараюсь ложиться к 11 и вставать рано.
Минусы:
- иногда по привычке смотрю на браслет как на часы.
- UX приложения недружелюбный. Есть много других фишек, которые либо лень изучать, либо не знаешь зачем.
- хуже трекает спортивные упражнения.
Я уже месяц хожу с браслетом и в коментах прошлого поста обещал сделать обзор.
Ну че. Давайте.
Из плюсов:
- почти две недели батарея.
- нравится режим recovery. Осознанней относишься ко сну и отдыху.
- время стресса. Иногда бывали дни, когда я был в состоянии стресса по 4 часа. Это жестко. После них чаще начал себя ловить на пустых переживаниях. Помогает не злиться на долгие лифты :)
- Сон стал более качественным. Стараюсь ложиться к 11 и вставать рано.
Минусы:
- иногда по привычке смотрю на браслет как на часы.
- UX приложения недружелюбный. Есть много других фишек, которые либо лень изучать, либо не знаешь зачем.
- хуже трекает спортивные упражнения.
Прикольная серия статей от запретограма* как они ускоряли сайт/приложение.
Тему оптимизаций и скорости загрузки контента кто-то так или иначе копал. Сначала менеджеры говорят "мы не будем это делать в MVP". А потом "А че так медленно?". Знакомая история?
Вообще тема перфоманса не так проста, как кажется. В крупных компаниях как ВБ, Авито, Озон и тп даже есть отдельная мобильная команда Perfomance, чьи задачи только и связаны как с ускорением контента.
Я решил поискать интересный контент на эту тему. В чате сообщества кинули топовые статьи как инстаграм улучшал работу сторисов, фильтров и других.
Главные советы:
1️⃣ Prefetching
Prefetch контента должен быть не сразу всего, а только приоритизированного. Не весь контент важен. Не стоит заранее префетчить весь контент. Не до всего пользователь дойдет
2️⃣ Контент
Не забывайте про размеры и качество изображений. Очень актуально для слабого соединения.
3️⃣ Chuncking
Инстаграм разделяет ответы на части везде, где можно. Пагинация, разрезание видео/фото, синхронизация клиента и сервера.
4️⃣ Кэширование
Кэш динамический в процессе просмотра он обновляется и актуализируется. Также все действия пользователя сначала записываются локально, а потом синхронизируются с бэком.
5️⃣ Размер кодовой базы
Не отдавайте много данных сразу. Большие модели могут лишний раз нагружать декодинг. Делайте много lazy loading'ов.
Самое главное — заниматься улучшением иттеративно. Не оптимизируйте код заранее, это мы еще помним с советам по рефакторингу.
Статьи:
- Making Instagram.com faster: Part 1
- Making Instagram.com faster: Part 2
- Making Instagram.com faster: Part 3 — cache first
- Making instagram.com faster: Code size and execution optimizations
*запрещённая в РФ соцсеть компании Meta
Please open Telegram to view this post
VIEW IN TELEGRAM
Ну че, нравится iOS 26?
Anonymous Poll
37%
Да, стало лучше
10%
Да, незаметно
19%
Не заметил разницы
25%
Нет, стало хуже
9%
Нет, было всегда плохо
Сейчас в своей задаче немного работаю с видосами и решил поизучать тему оптимизаций. Решил подкачать немного насмотренность и посмотреть какие советы хотя в интернетах.
Вот собрал интересные на мой взгляд статьи:
Please open Telegram to view this post
VIEW IN TELEGRAM
www.fastpix.io
Optimizing Video for iOS: Best Practices for Developers
Optimize iOS videos with MP4, H.264/HEVC codecs, and proper resolution to deliver smooth playback, reduce load times, and enhance visual quality across Apple devices.
#Книги #Рекомендации
О понятности
Мой блог помогает мне развиваться. Здесь, испытывая ответственность перед читателем, я стараюсь делать текст и речь понятной. Относиться к ним не просто как к набору букв, а как к продакшен коду.
Перекладывать ответственность на читателя за декодинг речи и мыслей — графоманская и незрелая позиция, какой я сам боле(ю)л.
Это как писать чатгпт рандомные слова и удивляться почему эта тупая машина не понимает тебя. Сейчас этот блог и я мутируем и выходим на новый этап.
Твой промт — должен быть понятен. Твой код — должен быть понятен. Твоя архитектура — должна быть понятна. Дизайн и речь — не исключения. Лишняя когнитивная нагрузка и шум, которые ты выдаешь потребителям, — признак твоего неуважения, лени.
Читаю книгу Ильяхова "Ясно понятно". Читал давно "Пиши, сокращай" 2015 года издания. Не мог полностью её принять. Избыточное сокращение казалось убивает уникальность и добавляет недосказанности, неочевидности, неясности. Как с тем примером про цикл for each и reduce в функции.
"Ясно, понятно" же закрывает дыры прошлой книги. Дает понять, что нужно находить грань между емкостью и понятностью. Не превращать текст в попытку покрасоваться глубиной своей эрудиции или набором дешевых кликбейтов на продажу услуг или товаров. А задуматься о нем как о средстве коммуникации.
Сейчас увеличение "ясности" — особенно актуально. Когда языки программирования стираются метаязыками и разговорными. Когда мы меняем гуглинг на чатгпт, а IDE на MCP и терминалы. Когда наступает сингулярность и размываются грани взаимодействия людей и машин. Ценность понятности вырастает.
О понятности
«Я сделал это письмо длиннее, чем обычно, потому что у меня не было времени сделать его короче и понятнее». Блез Паскаль
Мой блог помогает мне развиваться. Здесь, испытывая ответственность перед читателем, я стараюсь делать текст и речь понятной. Относиться к ним не просто как к набору букв, а как к продакшен коду.
Перекладывать ответственность на читателя за декодинг речи и мыслей — графоманская и незрелая позиция, какой я сам боле(ю)л.
Это как писать чатгпт рандомные слова и удивляться почему эта тупая машина не понимает тебя. Сейчас этот блог и я мутируем и выходим на новый этап.
Твой промт — должен быть понятен. Твой код — должен быть понятен. Твоя архитектура — должна быть понятна. Дизайн и речь — не исключения. Лишняя когнитивная нагрузка и шум, которые ты выдаешь потребителям, — признак твоего неуважения, лени.
Читаю книгу Ильяхова "Ясно понятно". Читал давно "Пиши, сокращай" 2015 года издания. Не мог полностью её принять. Избыточное сокращение казалось убивает уникальность и добавляет недосказанности, неочевидности, неясности. Как с тем примером про цикл for each и reduce в функции.
"Ясно, понятно" же закрывает дыры прошлой книги. Дает понять, что нужно находить грань между емкостью и понятностью. Не превращать текст в попытку покрасоваться глубиной своей эрудиции или набором дешевых кликбейтов на продажу услуг или товаров. А задуматься о нем как о средстве коммуникации.
Сейчас увеличение "ясности" — особенно актуально. Когда языки программирования стираются метаязыками и разговорными. Когда мы меняем гуглинг на чатгпт, а IDE на MCP и терминалы. Когда наступает сингулярность и размываются грани взаимодействия людей и машин. Ценность понятности вырастает.
В iOS-безопасности нет «поставил и забыл»: инструменты и атаки меняются быстрее релизов.
Если сомневаетесь, что на клиенте всё прикрыто, новый сезон конференции Podlodka iOS Crew 22-26 сентября поможет закрыть дыры.
В программе:
• Региональные ограничения и поведение устройства. Как iPhone определяет доступные фичи для страны, что проверять и как воспроизводить это на практике — со Светославом Карасевым (hh ru).
• Обфускация в iOS. Какие подходы реально мешают реверсу, какие инструменты выбрать и как собрать свой пайплайн на SwiftSyntax — с Павлом Каретниковым (Газпромбанк).
• AppSec для iOS. От ландшафта атак до хранения данных и сети — практики, ошибки и советы, как внедрять безопасную разработку в командах разного размера.
• Финальный разбор мини-CTF. Неделю собираем флаги, в пятницу — разбор находок и выводы для прода — с Никитой Красновым (Альфа-Банк).
🔗 Подробности и регистрация: https://podlodka.io/ioscrew
Для подписчиков скидка 500 р по промокоду:ios_crew_16_7V9XMN
Если сомневаетесь, что на клиенте всё прикрыто, новый сезон конференции Podlodka iOS Crew 22-26 сентября поможет закрыть дыры.
В программе:
• Региональные ограничения и поведение устройства. Как iPhone определяет доступные фичи для страны, что проверять и как воспроизводить это на практике — со Светославом Карасевым (hh ru).
• Обфускация в iOS. Какие подходы реально мешают реверсу, какие инструменты выбрать и как собрать свой пайплайн на SwiftSyntax — с Павлом Каретниковым (Газпромбанк).
• AppSec для iOS. От ландшафта атак до хранения данных и сети — практики, ошибки и советы, как внедрять безопасную разработку в командах разного размера.
• Финальный разбор мини-CTF. Неделю собираем флаги, в пятницу — разбор находок и выводы для прода — с Никитой Красновым (Альфа-Банк).
🔗 Подробности и регистрация: https://podlodka.io/ioscrew
Для подписчиков скидка 500 р по промокоду:
Скрытая цена генерации юнит тестов с помощью AI
На созвоне комьюнити мы говорили, что есть секретный хак для улучшенного промтинга АИ — это юнит-тесты.
Я этот хак узнал случайно. Как-то я писал несложную, но извилистую логику замены ссылок. И подбирал разные тесткейсы для курсора. Ожидая что с такой рутинной работой он изи справится. Но он всегда упускал какие-то корнер-кейсы. Тогда я взял юнит-тесты андроид разрабов и тупо ему сказал "Смотри, вот есть юнит-тесты на котлине. Напиши мне код на Swift, чтобы работал успешно на этих тесткейсах". И всё. Он сделал за 2 минуты именно тот код, что мне нужен.
Но у всего есть сайд-эффекты. Главная побочка аи-тулкитов — это потеря контроля. Бездумно генерируя код ты теряешь самую важную деталь — понимание как работает проект.
Знание доменной области (domain knowledge) — важная обязанность любого разраба. Например, кто-то пишет банковское приложение и знает особенности, правила, практики общей работы. И то, что на нее может повлиять. Например, выпилы приложений из сторов чаще в финтехах. А за неуплату налогов чаще строже карают чем за убийства...
Без этих знаний ты не сможешь предугадать как приложение и код будет реагировать в редких или сложных ситуациях.
Вот и автор не советует злоупотреблять автогенерацией тестов ведь:
1️⃣ Ручное написание тестов помогает понять домен
Когда разработчик сам думает, как покрыть разные случаи, ему приходится разобраться, как на самом деле устроены правила бизнеса (например, страховки, исключения, лимиты).
2️⃣ ИИ-генерация тестов может пропустить нюансы
ИИ работает по видимым шаблонам, по коду, который ему дали, но может не знать неизвестных деталей, не прописанных явно. Там, где нужен человеческий опыт, она может ошибиться.
3️⃣ ИИ-тесты хороши как вспомогательный инструмент, но не как полный заменитель
Автоматически сгенерированные тесты — хорошая основа или дополнение, но ручной подход даёт более глубокое понимание и гибкость.
4️⃣ Поверхностные знания бизнес-логики
Если разработчик довольствуется “зелёным” результатом тестов, не вникая, он может не увидеть, где логика нестандартная или изменится. В дальнейшем это может привести к ошибкам, когда правила домена эволюционируют.
Выводы: Лучше всего сбалансировать: использовать ИИ для поддержки, автоматизации, но стремиться к тому, чтобы разработчик сам писал ключевые тесты, особенно те, что связаны с правилами бизнеса.
На созвоне комьюнити мы говорили, что есть секретный хак для улучшенного промтинга АИ — это юнит-тесты.
Я этот хак узнал случайно. Как-то я писал несложную, но извилистую логику замены ссылок. И подбирал разные тесткейсы для курсора. Ожидая что с такой рутинной работой он изи справится. Но он всегда упускал какие-то корнер-кейсы. Тогда я взял юнит-тесты андроид разрабов и тупо ему сказал "Смотри, вот есть юнит-тесты на котлине. Напиши мне код на Swift, чтобы работал успешно на этих тесткейсах". И всё. Он сделал за 2 минуты именно тот код, что мне нужен.
Но у всего есть сайд-эффекты. Главная побочка аи-тулкитов — это потеря контроля. Бездумно генерируя код ты теряешь самую важную деталь — понимание как работает проект.
Знание доменной области (domain knowledge) — важная обязанность любого разраба. Например, кто-то пишет банковское приложение и знает особенности, правила, практики общей работы. И то, что на нее может повлиять. Например, выпилы приложений из сторов чаще в финтехах. А за неуплату налогов чаще строже карают чем за убийства...
Без этих знаний ты не сможешь предугадать как приложение и код будет реагировать в редких или сложных ситуациях.
Вот и автор не советует злоупотреблять автогенерацией тестов ведь:
1️⃣ Ручное написание тестов помогает понять домен
Когда разработчик сам думает, как покрыть разные случаи, ему приходится разобраться, как на самом деле устроены правила бизнеса (например, страховки, исключения, лимиты).
2️⃣ ИИ-генерация тестов может пропустить нюансы
ИИ работает по видимым шаблонам, по коду, который ему дали, но может не знать неизвестных деталей, не прописанных явно. Там, где нужен человеческий опыт, она может ошибиться.
3️⃣ ИИ-тесты хороши как вспомогательный инструмент, но не как полный заменитель
Автоматически сгенерированные тесты — хорошая основа или дополнение, но ручной подход даёт более глубокое понимание и гибкость.
4️⃣ Поверхностные знания бизнес-логики
Если разработчик довольствуется “зелёным” результатом тестов, не вникая, он может не увидеть, где логика нестандартная или изменится. В дальнейшем это может привести к ошибкам, когда правила домена эволюционируют.
Выводы: Лучше всего сбалансировать: использовать ИИ для поддержки, автоматизации, но стремиться к тому, чтобы разработчик сам писал ключевые тесты, особенно те, что связаны с правилами бизнеса.
AzamSharp
Hidden Cost Of Ai Unit Tests
The Hidden Cost of AI-Generated Unit Tests: Sacrificing Domain Knowledge
Кто у вас на проекте пишет автотесты?
Anonymous Poll
16%
Автоматизаторы
12%
QA-универсалы
21%
Разрабы+QA
25%
Разрабы
30%
Никто
7%
AI
4%
Другое
Почему MVx архитектуры всегда получаются плохо
Увидел офигенную статью у Миши Левченко про MVx паттерны. Мы много раз похожие мысле поднимали тут:
- В посте про переоценку UI-архитектур
- В "О, нет! Ты выбрал неправильную UI архитектуру!"
Мне нравится тренд, что индустрия начинает уходить от состояния "начинающего иллюзиониста" к "осознанным практикам". Уходим от затычек ввиде VIPER, TCA и любой другой MVx паттерн. Мы не пытаемся затыкнуть дыру очередным шаблоном, думая что он поможет избавиться от проблем. Хаотично не бежим изучать очередной архитектурный фреймворк.
Автор круто описал проблемы MVx паттернов:
1️⃣ Проблема остатка (remainder issue)
Когда ты пытаешься разбить фичу на компоненты по правилам MVx, часто остаются части, которые не вписываются идеально.
В итоге: много шаблонного кода, повышенная сложность, увеличение времени на тесты, на обучение новых разработчиков.
2️⃣ Проблема масштабируемости (scalability issue)
Даже если у тебя сейчас всё красиво разделено и “работает”, с ростом функционала фичи начинают “разбухать”.
В итоге: код становится труднее поддерживать, тестировать; компоненты жестко связаны, сложно изменять без побочных эффектов.
3️⃣ Проблема разрывов в логике (gaps or breaks in logic flow)
Проблема разрывов - это когда мы не можем гарантировать последовательность выполнения логики, потому что она была разорвана на части в процессе программирования.
Это усложняет написание тестов, ведёт к багам, т.к. сложно проследить все пути, по которым логика может пойти.
У меня тоже накопилось много контента, опыта и мнений по поводоу System Design vs Бездумная архитектура. Этими постами и контентами тоже мотивируюсь больше писать об этом.
Увидел офигенную статью у Миши Левченко про MVx паттерны. Мы много раз похожие мысле поднимали тут:
- В посте про переоценку UI-архитектур
- В "О, нет! Ты выбрал неправильную UI архитектуру!"
Мне нравится тренд, что индустрия начинает уходить от состояния "начинающего иллюзиониста" к "осознанным практикам". Уходим от затычек ввиде VIPER, TCA и любой другой MVx паттерн. Мы не пытаемся затыкнуть дыру очередным шаблоном, думая что он поможет избавиться от проблем. Хаотично не бежим изучать очередной архитектурный фреймворк.
Автор круто описал проблемы MVx паттернов:
1️⃣ Проблема остатка (remainder issue)
Когда ты пытаешься разбить фичу на компоненты по правилам MVx, часто остаются части, которые не вписываются идеально.
В итоге: много шаблонного кода, повышенная сложность, увеличение времени на тесты, на обучение новых разработчиков.
2️⃣ Проблема масштабируемости (scalability issue)
Даже если у тебя сейчас всё красиво разделено и “работает”, с ростом функционала фичи начинают “разбухать”.
В итоге: код становится труднее поддерживать, тестировать; компоненты жестко связаны, сложно изменять без побочных эффектов.
3️⃣ Проблема разрывов в логике (gaps or breaks in logic flow)
Проблема разрывов - это когда мы не можем гарантировать последовательность выполнения логики, потому что она была разорвана на части в процессе программирования.
Это усложняет написание тестов, ведёт к багам, т.к. сложно проследить все пути, по которым логика может пойти.
У меня тоже накопилось много контента, опыта и мнений по поводоу System Design vs Бездумная архитектура. Этими постами и контентами тоже мотивируюсь больше писать об этом.
Хабр
Почему MVx архитектуры всегда получаются плохо
Другие статьи из серии: 1. Почему MVx архитектуры всегда получаются плохо 2. Как поправить 3 проблемы MVx архитектур 3. Кроссплатформенная архитектура ядра приложения. Простая. Линейная....
1 10
Затрагивая Swift Councurrency нельзя не поднять тему утечек. В этой подборки:
Напоминаю, мы в комьюнити уже собрали самую большую базу знаний для прохождения и проведения собесов.
Есть немало людей, кто делится или использует задачи в собесах. В отличие от других это не сборка из статей или чатгпт, а валидация сообществом практикующих инженеров почти из 400 человек.
В этом собственно и сила материала, что это усилие десятков инженеров, а не соло автора. Краудсорсинг на коленке.
Будь это стартап или бигтех:
- 100 задач на управлению памятью
- Огромный цикл статей управлению памятью
- 100 вопросов для подготовки к собеседованию по управлению памятью
Please open Telegram to view this post
VIEW IN TELEGRAM
К теме архитектур
короче понял, что самый главный буст памяти и удержании больших картин в голове — это стратегии и книги.
Ща читаю снова кучу книг и материалов про system design для большой статьи. И самое сложное это удерживать и связывать все в голове. Дип ресерчить и комбинировать.
Особенно на контрасте это с клиповым и зумерским (не в обиду) мышлением. Где короткие видосы сделали нашу ОЗУ головного мозга размером с рыбки.
Или пытаюсь осилить стратегию Crusader Kings 3 уже третий раз. Не потому что прикалывает, а просто понимать все нюансы и стратегии для тренировки нейронки мозга.
Братья, что можете посоветовать из хороших книг или стратегий? А может чего-то другого
короче понял, что самый главный буст памяти и удержании больших картин в голове — это стратегии и книги.
Ща читаю снова кучу книг и материалов про system design для большой статьи. И самое сложное это удерживать и связывать все в голове. Дип ресерчить и комбинировать.
Особенно на контрасте это с клиповым и зумерским (не в обиду) мышлением. Где короткие видосы сделали нашу ОЗУ головного мозга размером с рыбки.
Или пытаюсь осилить стратегию Crusader Kings 3 уже третий раз. Не потому что прикалывает, а просто понимать все нюансы и стратегии для тренировки нейронки мозга.
Братья, что можете посоветовать из хороших книг или стратегий? А может чего-то другого
Какой вы бы сделали совет по входу в ит в 2025?
Anonymous Poll
37%
Херачить пока молодой. Вписываться в любую движуху
14%
Ебл@нить. Крутить опыт. Читерить.
29%
Не иди в ит в 2025.
21%
Изучай базу. Иди в ML.
17%
Алгосы. Систем дизайн. Харды.
18%
Софты. Коммуникация. Менеджмент.
19%
Хз.
System Design vs Software Architecture: результат vs код
В мобилке наверное до 2023 года систем дизайн не был популярен. В вопросах архитектур многие путали организацию ui слоя как VIPERы или задавали вопросы чем отличается прокси от декоратора. Когда же требования и задачи начали усложняться, то начала меняться сама тема.
Например раньше, если разраб брал фичу, то он думал ТОЛЬКО О КОДЕ. Реализует по Clean Architecture. Выделяет все в слои Use Cases, Repository, Entities. Все четко по SOLID.
Такой подход был рутиным и похожим на гонку "кто затащит самый хайповый фреймворк себе в проект". Ответить на вопрос "зачем мы юзаем VIPER, а не MVP?" толком никто не мог. Просто потому что "модно".
Такое давало много разных проблем. Фреймило на определенной парадигме, где следование жестким границам привычных поведний вредило больше, чем помогало. Иногда приложение на два экрана усложнялось и превращалось в переусложненное дерьмо просто потому что "так правильно академически", когда же практически проект вымирал из-за своей медлительности и неповоротности.
Систем дизайн же дал осознанности. Теперь инженеры больше думают о РЕЗУЛЬТАТЕ:
🟣 Пользователь видит не архитектуру, а результат. Ему все равно, что у тебя MVVM или VIPER, если приложение тормозит или падает.
🟣 Mobile System Design учитывает взаимодействие с дизайнерами, бэкендерами, тестировщиками. Теперь нет нелепых оправданий от разрабов "это нарушает архитектуру iOS проекта". Архитектура должна отражать бизнес, а не сковывать его
🟣 Компании стали хотеть видеть инженеров, которые думают шире, чем просто "экранчики и кнопки".
Сейчас разрабам критически важно выходить за рамки кода и своей платформы. Не просто как разделять UI и бизнес логику или выбрать между MVC или Clean Architecture. А понимать как iOS работает с бэкендом? Что будет в оффлайне? Как работают пуши или диплинки? Как тестировать систему целиком, а не только маленькими кусками кода? Как разбивать фичу на модули? И это как раз помогает развивать и оценить дисциплина System Design.
Архитектура — про код.
Системный дизайн — про ценность для продукта и пользователя.
- System Design vs. Software Design
- System Design vs. Software Architecture
В мобилке наверное до 2023 года систем дизайн не был популярен. В вопросах архитектур многие путали организацию ui слоя как VIPERы или задавали вопросы чем отличается прокси от декоратора. Когда же требования и задачи начали усложняться, то начала меняться сама тема.
Например раньше, если разраб брал фичу, то он думал ТОЛЬКО О КОДЕ. Реализует по Clean Architecture. Выделяет все в слои Use Cases, Repository, Entities. Все четко по SOLID.
Такой подход был рутиным и похожим на гонку "кто затащит самый хайповый фреймворк себе в проект". Ответить на вопрос "зачем мы юзаем VIPER, а не MVP?" толком никто не мог. Просто потому что "модно".
Такое давало много разных проблем. Фреймило на определенной парадигме, где следование жестким границам привычных поведний вредило больше, чем помогало. Иногда приложение на два экрана усложнялось и превращалось в переусложненное дерьмо просто потому что "так правильно академически", когда же практически проект вымирал из-за своей медлительности и неповоротности.
Систем дизайн же дал осознанности. Теперь инженеры больше думают о РЕЗУЛЬТАТЕ:
Сейчас разрабам критически важно выходить за рамки кода и своей платформы. Не просто как разделять UI и бизнес логику или выбрать между MVC или Clean Architecture. А понимать как iOS работает с бэкендом? Что будет в оффлайне? Как работают пуши или диплинки? Как тестировать систему целиком, а не только маленькими кусками кода? Как разбивать фичу на модули? И это как раз помогает развивать и оценить дисциплина System Design.
Архитектура — про код.
Системный дизайн — про ценность для продукта и пользователя.
- System Design vs. Software Design
- System Design vs. Software Architecture
Please open Telegram to view this post
VIEW IN TELEGRAM
GeeksforGeeks
System Design vs. Software Design - GeeksforGeeks
Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
System Design-интервью: зачем они нужны и почему не всегда работают
В интернетах ходят советы заменить все секции собесов на одну — систем дизайн. Мы немного поштормили и выдали топ ответов почему сисдиз не для всех:
1️⃣ Time to Offer
Сегодня 60% собеседований — это типовые задачи и вопросы. Часть из них кочует из компании в компанию.
Банально, задача с написанием юнит-теста на аналитику мне попадалась за 5 лет в нескольких разных компаниях. Казалось бы, найм супер упрощен. Есть сборник вопросов, достаточно пару раз сходить на собесы и ты уже +- понял правила игры. Да и интервьюров обучать не сложно. Просто есть методичка — проверяй по ней.
Но даже с таким простым подходом time to offer (время на получение оффера) обычно от 2 до 8 недель. Теперь представьте как увеличится время, если прогонять каждого не по максимально шаблонному собесу, а по сложному процессу. Где и критерии оценки очень размыты. Да и каждый интервьюр — это дорогой спец без свободных слотов на 1.5 часа собесов. Time to offer легко станет х2
2️⃣ Сложность критериев
Следующая проблема — это кол-во интервьюеров, кто смог пройти и обучился проводить секцию. Ведь обучение проводить собесы тоже важно.
Сис диз сложнее в оценке. Чтобы секция работала, нужно:
- подготовить интервьюеров,
- выровнять критерии оценки,
- договориться о «весе» каждого аргумента.
На практике же часто один интервьюер занижает оценку, другой завышает, и на финальном этапе нанимающий менеджер нивелирует часть разногласий. Это допустимо на обычных секциях, но в системном дизайне оценку сделать еще сложнее.
3️⃣ Кандидаты разного уровня
Не все кандидаты в принципе готовы к интервью. Мидл может быть сильным в коде и фичах, но никогда не сталкиваться с задачами по масштабированию, оффлайн-сценариям или интеграциям. Для него это будет "разговор вслепую".
Короче, Вывод:
Сисдиз собесы нужны и полезны. Они показывают, как кандидат мыслит системно и работает в условиях неопределенности. Но делать их обязательными для всех компаний и всех уровней — ошибка.
В найме цель не в том, чтобы провести "модное" интервью. Цель нанять подходящего инженера вовремя. Если систем дизайн удваивает Time to Offer и отталкивает кандидатов, он превращается не в инструмент, а в тормоз бизнеса.
В интернетах ходят советы заменить все секции собесов на одну — систем дизайн. Мы немного поштормили и выдали топ ответов почему сисдиз не для всех:
1️⃣ Time to Offer
Сегодня 60% собеседований — это типовые задачи и вопросы. Часть из них кочует из компании в компанию.
Банально, задача с написанием юнит-теста на аналитику мне попадалась за 5 лет в нескольких разных компаниях. Казалось бы, найм супер упрощен. Есть сборник вопросов, достаточно пару раз сходить на собесы и ты уже +- понял правила игры. Да и интервьюров обучать не сложно. Просто есть методичка — проверяй по ней.
Но даже с таким простым подходом time to offer (время на получение оффера) обычно от 2 до 8 недель. Теперь представьте как увеличится время, если прогонять каждого не по максимально шаблонному собесу, а по сложному процессу. Где и критерии оценки очень размыты. Да и каждый интервьюр — это дорогой спец без свободных слотов на 1.5 часа собесов. Time to offer легко станет х2
2️⃣ Сложность критериев
Следующая проблема — это кол-во интервьюеров, кто смог пройти и обучился проводить секцию. Ведь обучение проводить собесы тоже важно.
Сис диз сложнее в оценке. Чтобы секция работала, нужно:
- подготовить интервьюеров,
- выровнять критерии оценки,
- договориться о «весе» каждого аргумента.
На практике же часто один интервьюер занижает оценку, другой завышает, и на финальном этапе нанимающий менеджер нивелирует часть разногласий. Это допустимо на обычных секциях, но в системном дизайне оценку сделать еще сложнее.
3️⃣ Кандидаты разного уровня
Не все кандидаты в принципе готовы к интервью. Мидл может быть сильным в коде и фичах, но никогда не сталкиваться с задачами по масштабированию, оффлайн-сценариям или интеграциям. Для него это будет "разговор вслепую".
Короче, Вывод:
Сисдиз собесы нужны и полезны. Они показывают, как кандидат мыслит системно и работает в условиях неопределенности. Но делать их обязательными для всех компаний и всех уровней — ошибка.
В найме цель не в том, чтобы провести "модное" интервью. Цель нанять подходящего инженера вовремя. Если систем дизайн удваивает Time to Offer и отталкивает кандидатов, он превращается не в инструмент, а в тормоз бизнеса.
Считаешь ли ты, что текущие процессы собеседований сломаны?
Anonymous Poll
40%
Сломаны в край, людей оценивают рандомно. Нужно все переделать
8%
Сломаны, но частично. Собесы задизайнены норм, но интервьюеры плохо справляются
11%
Сломаны, виноваты рекрутеры. Они пьют нашу кровь
10%
Сломаны и поломал их AI и чатгпт
8%
Не сломаны, собесы работают нормально.
23%
Не сломаны, но немного устарели. Их нужно актуализировать