YDC — Pizza Powered iOS
248 subscribers
67 photos
99 links
Young Da Code 👨‍💻
Первый командный дайджест о мобильной разработке 🍕
Download Telegram
🤔 🧠 Осознанное создание легаси для самих себя.

Недавно мы обсуждали, стоит ли менять инструмент мокирования в юнит-тестах.

У нас есть два решения:
🧩 SHInstantMock (построен на базе InstantMock) — динамический, мощный, с магией под капотом.
Работает в рантайме, позволяет многое, но требует аккуратности: MockUsable, runtime проверки, не всегда типобезопасно.
Мы написали свои макросы для него, чтобы сократить бойлерплейт — и это реально улучшило DX.
⚡️ Spyable — простой, макросный, статически типизированный.
Меньше магии, проще дебажить, порог входа ниже.

Хочется постепенно переписать «легаси» с InstantMock на Spyable.
Возможно, даже попробовать AI-помощника для автоматического переписывания моков и тестов.

И вот главный вопрос, который у нас возник 👇


🎯 Насколько вообще целесообразно обновлять стек инструментов, если старый ещё справляется?



Зачем это делать?
💡 DX — меньше бойлерплейта, быстрее писать и читать тесты.
👥 Найм — проще входить новым инженерам, особенно если инструмент ближе к современным подходам (Swift Macros, compile-time generation).
🧱 Поддержка — статическая типизация уменьшает хрупкость кода и неожиданные падения.
🤖 Эволюция — шаг в сторону будущего Swift, где runtime-инъекции постепенно уступают compile-time инструментам.

Но есть и обратная сторона:
📉 Цена миграции (особенно если у вас сотни тестов).
🔄 Риск поломать то, что и так работает.
Возможно, это просто "движение ради движения".

По сути — мы осознанно создаём новое легаси для самих себя, надеясь, что новое решение будет более «здоровым» и предсказуемым.

А вы как считаете — стоит ли обновлять инструменты, если текущие работают, или лучше выжимать максимум из старых решений?

#L #Swift #Testing #Mock #Macros #DX #AI #EngineeringPhilosophy

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
1