YDC — Pizza Powered iOS – Telegram
YDC — Pizza Powered iOS
242 subscribers
64 photos
93 links
Young Da Code 👨‍💻
Первый командный дайджест о мобильной разработке 🍕
Download Telegram
😳 🧠 Agentic AI и безопасность — кто контролирует твои данные?

Наткнулся на интересную статью в блоге Мартина Фаулера — Agentic AI Security.
Она разбирает безопасность в работе LLM и объясняет, почему использование агентов — это не просто “умные помощники”, а ещё и новые векторы уязвимостей.

Заглавный вопрос статьи: LLM не различает данные и инструкции.

Когда агент объединяет несколько итераций текста и вызовов инструментов (MCP, внешние API, CLI и т.п.) в один большой контекст, он может “съесть” вредоносную инструкцию прямо из данных.

💉 Так появляется prompt injection — когда данные превращаются в команды.

Korny Sietsma, автор статьи, приводит ссылки на смежные материалы и называет это "смертельной триадой" угроз:

- Sensitive Data is the core thing most attackers want - this can include things like browser cookies that open up access to other data.
- Неочевидность границ контекста — модель не знает, что безопасно, а что нет.

- Untrusted Content can include commands that the LLM might follow.
- Инъекция инструкций — злоумышленник подмешивает вредоносные команды в текст.

- External Communication allows the LLM application to send information back to the attacker.
- Автоматизация действий без контроля — агент сам выполняет то, что “кажется логичным”.

📊 В статье есть отличные диаграммы, показывающие, как LLM взаимодействует с внешним миром, инструментами и данными. Всё складывается в единую картину:
Агент — это цепочка промтов и tool-вызовов, которые не имеют встроенной защиты.

💬 Отдельно поднимается вопрос этики и порядочности поставщиков инструментов и MCP-серверов.
И рекомендуют применять все обычные проверки безопасности.

Публикация официального реестра MCP — это шаг вперёд.
Но он пока никак не администрируется на предмет безопасности или уязвимостей.


⚙️ Что можно сделать, чтобы уменьшить риски?
🔜 Контейнеризировать окружения агентов (Docker или Apple Containers)
🔜 Изолировать задачи и инструменты
🔜 Делать итерации с подтверждением человеком
🔜 Защищать/скрывать доступы и токены
🔜 Использовать безопасные dev-контейнеры (Claude Dev Containers)

🧩 Вся экосистема движется к тому, чтобы LLM могла действовать самостоятельно.
Но важно понять, что пока человек остаётся самым надёжным “firewall” между ИИ и злоумышленником.
А применение подходов описанных в статье снимает львиную долю человеческого фактора.

P.S.:💡 Отдельный инсайт для меня — это Apple Containers: Linux контейнеры в macOS от Apple.
Надо будет посмотреть.

#L #AgenticAI #Security #LLM #PromptInjection #MCP #Containers #Claude #Apple #AI

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
3🤡1
🤔🧵 Xcode 26 + Swift 6.3 — апдейт, который может реально ускорить разработку

Последние апдейты Xcode и Swift звучат интересно: в сети начали появляться бенчмарки и обзоры, где отмечают заметный прирост в скорости сборки и работе рантайма.

💨 Сборка
В Swift 6.3 улучшили оптимизацию компилятора: кеширование, генерацию кода, специализацию дженериков.
По данным из бенчмарков, многомодульные проекты собираются быстрее — местами прирост достигает 2–3x при холодной сборке.
Apple в релиз-нотах Swift 6.3 тоже указывает на улучшения в оптимизации и снижении времени сборки.

⚙️ Async/await и рантайм
В статьях и тестах отмечают, что async/await стал работать ощутимо быстрее — оптимизировали actor-изоляцию и планировщик задач.
Те же бенчмарки показывают до 30–40% улучшения производительности и меньший расход памяти в асинхронных сценариях.
Похоже, Swift 6.3 действительно подчищает шероховатости concurrency.

🧠 Instruments и профилирование
Xcode 26 принёс апдейты и для диагностики:
🔗 WWDC 2025: Optimize CPU performance with Instruments
🔗 WWDC 2025: Optimize SwiftUI performance with Instruments

⚡️ Всё это — не революция, но важный шаг к тому, чтобы Swift и Xcode ощущались быстрее, надёжнее и понятнее (в том числе при работе с многопоточностью).

Пока сам не мерил, но судя по статьям и отзывам — апдейт действительно стоящий.

Ссылки:
🔗 Swift 6.3 Release Notes
🔗 Xcode 26 Release Notes
🔗 Swift 6.3 Performance Benchmarks (Medium)
🔗 Performance profiling в Swift 6.3

#L #Xcode26 #Swift #Instruments #asyncawait

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
5
☺️🧪 Code Coverage — чтобы тесты реально помогали

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

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

Инструменты:
🖥 xctestplan — позволяют централизованно управлять конфигурациями и включать сбор покрытия без десятков схем.
🧑‍💻 xcrun xcov — базовый CLI-инструмент Apple для выгрузки покрытия (можно парсить .xccovreport и агрегировать по модулям).
👃 Slather — визуализирует отчёты via html, позволяет собрать cobertura.xml и интегрировать его с CI (для визуализации покрытия в том числе на MR-ах).

Как развивать подход:
- Формировать зоны по которым считается покрытие.
- Хранить и визуализировать динамику покрытия (Grafana / VictoriaMetrics / Prometheus).
- Следить за покрытием в MR — не допускать падения ниже порога.
- Разделять покрытие по фичам и модулям.
- Комбинировать метрики покрытия и сложности кода для приоритезации тестирования.

ИМХО: Coverage — это не про гонку за «100%»,
а про осознанный контроль качества и постоянную обратную связь для команды.

#L #metrics #coverage #xctestplan

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
🎃 Полночь.
Пустой офис.
Монитор — единственный источник света.

💻 Xcode завис.
Слишком долго...

На экране появляется надпись:
Cleaning DerivedData…

Ты вздрагиваешь.
Кожа на затылке стынет.
Проект оживает — и будто сопротивляется тебе.

🌀 Indexing. Rebuilding. Re-indexing.
Симулятор падает.
Память исчезает быстрее, чем надежда.
8… 4… 2 ГБ…

Ты решаешь удалить DerivedData вручную.
Но закрываешь Finder — и она появляется снова.
Папка возрождается, как нечто живое.

🕯 Консоль мерцает:
“Preparing build environment…”
Шёпот за спиной.
Ты оборачиваешься — никого.

И тогда ты понимаешь:
в этом аду нет выхода.

В темноте офиса вспыхивает последнее сообщение:
🪦 Build failed.

#R

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
5👻3🔥1🥱1
💻 "жиза", это когда половина рабочих встреч со всей недели, сьехали на рабочую субботу. 😒

#L

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
👍 🧠 “Specification-Driven Development” и размышления о будущем AI-разработки

Многие из нас, кто работает с AI-агентами, уже не раз задавались вопросами:

«Как структурировать свой knowledge base?»
«Как писать спецификацию и проектную документацию так, чтобы с ней мог работать ИИ?»


И вот отличная статья в блоге Martin Fowler, где разбирается подход Specification-Driven Development (SDD) — создание систем и агентов на основе детализированных спецификаций.
Автор показывает инструменты и практики, помогающие связать описания требований, память, итерации и код, формируя понятный процесс разработки с участием LLM.

Однако важно отметить — термин SDD пока не имеет строгого определения.
Он уже стал зонтичным, объединяя и RAG-сценарии, и агентную разработку, и AutoGen-подходы.
То есть комьюнити пока только нащупывает, что именно значит “разработка на основе спецификаций” и куда она эволюционирует.

Лично я считаю статью полезной прежде всего для расширения кругозора — особенно если вы размышляете над архитектурой ИИ-агентов, памятью и контекстом.
Но насколько далеко мы зайдём, и как будет выглядеть «SDD» через пару лет — пока вопрос открытый 🤷‍♂️

P.S. Особенно с учётом растущего интереса к самостоятельным и независимым AI-кодерам в корпоративных контурах.
На днях, накопал инструмент Continue.dev, который позволяет разворачивать полностью локального AI-кодера с собственной моделью — без зависимости от внешних API.
Пока просто на уровне изучения, может быть попробуем и получится поделиться опытом.

#L #AI #RAG #SDD

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
😄 Директория Derived Data -
одна из самых заметных в работе iOS-разработчика. Xcode активно использует её для кэширования и оптимизации.

🤔 В то же время, большинство разработчиков часто ограничиваются лишь ее очисткой, когда что-то в рантайме идет не так или не проходит сборка.

В карточках мы чуть-чуть расширим представление о ней.

Ссылки:
📎 Оригинальная статья
📎 Статья про .xcactivitylog

#M #iOS #TeamWork #Perfomance #DerivedData

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1🏆1
👍 🧩 Про модуляризацию и границы между фичами
Чтение выходного дня натолкнуло на статью "Building Modular and Scalable iOS Apps".

Не сказать, что она очень подробная, но она поднимает важные темы:
- слоистость архитектуры,
- правила взаимодействия между модулями,
- DI и тестирование в контексте модульной структуры.

Я несколько лет назад писал цикл статей про модуляризацию — вот одна из них:
Там я подробнее разбирал вопросы, связанные с build critical path, графом зависимостей, подходом API/Impl, и тем, как всё это влияет на скорость сборки и масштабируемость архитектуры.

Интересно наблюдать, что тема модульной архитектуры всё ещё обсуждается (где-то даже очень базово).
И периодически появляются новые ракурсы размышлений (в комьюнити):
- развитие Tuist
- апдейты в Xcode
- интеграции с современными инструментами сборки и автоматизации.

#L #Arch #Modularity #apiimpl

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2
😒 Как ускорить сборку в Xcode и перестать ждать часами

🔗 Статья: How to speed up Xcode build time

Основные идеи:

1️⃣ ИМХО, самая важная - использовать Build Time Summary (и его ассистента/визуализатора) — мощный встроенный способ увидеть узкие места на сборке, для того чтобы принимать решения не вслепую.
Для детализации на CI: попробуйте xclogparser или xcode-build-times.
Как уже не раз говорил, наблюдаемость и инспекция - наше все и то с чего всегда стоит начинать.

2️⃣ Проверить флаги сборки, оптимизации и параллельные билды.

3️⃣ Правильно чистить DerivedData — мы недавно подробно писали об этом тут.

4️⃣ Компилировать только, то что нужно для текущего запуска:
Автор предлагает проверить конфигурацию схемы.
А я бы предложил в том числе, смотреть на уровне исходников и анализа компиляции, например: исключать моки из сборок для Debug-а, если вы их модуляризуете.

5️⃣ Тоже имба в случае верной настройки:
input/output files в кастомных скриптах/фазах сборки (например, для SwiftLint: настройте фазу и используйте параметры --use-noscript-input-file-lists и --cache-path) — чтобы Xcode не перезапускал всё подряд, на каждом прогоне.

💡 От себя также добавлю:

1️⃣ Bitcodeмёртв. Apple официально отключила его поддержку с iOS 16 (см. release notes), поэтому можно смело его выкидывать из головы.

2️⃣ Оптимизация графа зависимостей: через API/Impl, Dependency Inversion и контроль build critical path — мощнейший рычаг (я писал об этом здесь).

3️⃣ Build cache (локальный или remote) — просто имбовый импакт на многомодульном проекте.

🔥 В сумме это всё может дать десятки процентов прироста при правильном использовании.

#L #Xcode #CompileTime

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
3
☺️ 💻 Ваш MacBook vs время сборки: что реально влияет?

Занимаемся сейчас апдейтами процесса анализа время сборки на компьютерах разработчиков и на CI.
Да и вчерашний пост, про время компиляции хотелось бы развить.
Поэтому чуть мыслей еще своих:

Недавно сравнивал время сборки на двух маках, и заодно посмотрел, что говорят бенчмарки.

💡 Существует интересный бенчмарк компиляции синтезированного, но около, реального проекта:

💻MacBook Pro 14" (2023, M2 Pro, 10-core, 16 ГБ RAM)
— средний результат по XcodeBenchmark ~119 сек.

💻MacBook Pro 16" (2023, M3 Pro, 12-core, 36 ГБ RAM) ~134 сек
В идеальных услвоиях прирост небольшой, но реальная разница может ощущаться в реальных условиях. Так, в моем кейсе проблемы были из-за памяти.

Что подтверждают бенчмарки (цифры осознанно усреднены):
- переход с M1M2 даёт ~10–15% прироста;
- M2M3 — ещё +10–20% в зависимости от конфигурации и RAM.
При одинаковом объёме оперативной памяти отрыв между поколениями минимален.
Решает не только CPU, но и стабильность под нагрузкой, на что может влиять: RAM, тех процесс (на M3 - 3нм), sustained performance per watt.

🧠 Про память:
Если Xcode, Slack, Zoom, браузер и антивирус живут одновременно — 16 ГБ быстро заканчиваются, macOS уходит в swap и сборка резко замедляется.
Не раз читал, что при unified memory (в M-чипах работает как общая шина между CPU/GPU), нехватка RAM мгновенно сказывается на производительности.
📎 Apple Silicon memory architecture

❗️ Вывод
Количество ядер, тех процесс, количество RAM - каждый из параметров важен.
Нельзя создавать узких горлышек нагружая свою рабочую машину.
Так при исчерпывании RAM можно, как в моему случае столкнуться с проблемами и тратить время на анализ. 👍 
Следите за процессами, которые могут отъедать память, если хотите предсказуемое время сборки и комфортный DX.

P.S.: Отдельно можно говорить про скорость SSD и другие параметры, может сталкивались с другими проблемами и есть решения?

#L #Macbook #UnifiedMemory #Benchmark #CompileTime

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🤔 🧠 А что откликается у вас?

Наткнулся на статью о жизни с СДВГ.
Без клише, без «мотивационных советов» — про то, как это чувствуется, когда ты или твои подопечные в IT и необходимо «держать фокус».

1. Гиперактивность.
2. Невнимательность, когда теряешь мысль посреди задачи или выключаешься из разговора.
3. Гиперфокус (обратная сторона п.2) когда настолько погружен в задачу, что сложно переключится на что-то другое, в том числе, на внимание к себе и близким.
4. «Паралич задачи», когда даже простое действие кажется непреодолимым.
5. «Временная слепота», когда теряешь ощущение часов.
6. «Низкая самооценка», из-за особенностей взаимодействия с людьми с самого раннего возраста.

Читаешь — и понимаешь, что многое из этого, должно быть знакомо даже тем, кто без диагноза.
По крайней мере у меня отликается чуть ли не каждый пункт.
Иногда мы просто перегружены контекстами, уведомлениями, ожиданиями.
Но где-то между этим всем теряется простая штука — внимание к себе.

P.S.: Нащупывается важная тему, где техника в IT встречается с эмпатией и people-management-ом.
Если пост найдет отклик, можно будет погрузится в особенности работы с людьми, включая учёт личных характеристик, при планировании и коммуникации.

#L #Management #Teamwork #СДВГ
Please open Telegram to view this post
VIEW IN TELEGRAM
9
😄 🧭 Что такое технологический радар и зачем он нужен разработчикам

Когда технологий становится слишком много — языков, фреймворков, библиотек, инструментов — легко потеряться. Именно поэтому команды всё чаще создают технологический радар (Tech Radar).

Концепцию популяризировала компания ThoughtWorks, у которой регулярно выходит публичный Technology Radar

🚀 Что это такое?

Tech Radar — это карта технологий компании.
Она помогает понять:

• Какие технологии мы уже используем
• Какие пробуем
• За какими следим
• И от каких лучше отказаться

Выглядит это как диаграмма с секторами и кольцами.
Например:

• Сектора: Languages & Frameworks, Tools, Platforms, Techniques
• Кольца: Adopt, Trial, Assess, Hold

💡 Зачем нужен тех радар?

• Создаёт единое техническое видение для всех команд
• Помогает приоритизировать эксперименты
• Делает прозрачным, почему выбрана та или иная технология
• Борется с техническим долгом — видно, что пора заменить или вывести из использования

⚙️ Как использовать?

• Обновляйте радар раз в квартал
• Обсуждайте его на технических встречах
• Используйте как ориентир для развития команды и найма
• Ведите историю изменений — это покажет эволюцию технологического стека

📍 Итог: Tech Radar — это не просто таблица. Это инструмент осознанного выбора технологий и стратегического развития. Он помогает не гнаться за хайпом, а строить системную, зрелую инженерную культуру.

#D #Architecture #BestPractices #TechManagement

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
3
😏 Часто кажется, что в SUI достаточно использовать .animation() в большинстве случаев и интерфейс будет плавным.
Но как только компонент становится сложнее, могут начаться проблемы – «рывки», некорректное отображение и анимации «не там, где нужно».

💡 В таких ситуациях помогает Transaction — механизм, который позволяет управлять тем, что именно анимируется, когда и как.

Разобрал ключевые моменты + примеры в карточках.

📎 Оригинальная статья

#R #SUI #Transaction

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2