TGViewer
Channel Public Channel
YDC — Pizza Powered iOS

YDC — Pizza Powered iOS

@youngdacode

Young Da Code 👨‍💻
Первый командный дайджест о мобильной разработке 🍕
Subscribers
242
Photos
67
Videos
0
Links
99

Showing posts older than #58 · Back to latest

Older Posts 13 shown
Post #57 169
😄 🧭 Что такое технологический радар и зачем он нужен разработчикам

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

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

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

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

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

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

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

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

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

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

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

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

#D #Architecture #BestPractices #TechManagement

👏
Thoughtworks Technology Radar | Guide to technology landscape The Technology Radar is an opinionated guide to today's technology landscape. Read the latest here.
  • ❤ 3
Post #56 165
🤔 🧠 А что откликается у вас?

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

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

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

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

#L #Management #Teamwork #СДВГ
Neil Macy ADHD | Neil Macy It’s been quite a year of self-discovery.
  • ❤ 9
Post #54 179
☺️ 💻 Ваш 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 сек
В идеальных услвоиях прирост небольшой, но реальная разница может ощущаться в реальных условиях. Так, в моем кейсе проблемы были из-за памяти.

❓ Что подтверждают бенчмарки (цифры осознанно усреднены):
- переход с M1 → M2 даёт ~10–15% прироста;
- M2 → M3 — ещё +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

👏
GitHub GitHub - devMEremenko/XcodeBenchmark: XcodeBenchmark measures the compilation time of a large codebase on iMac, MacBook, and Mac… XcodeBenchmark measures the compilation time of a large codebase on iMac, MacBook, and Mac Pro - devMEremenko/XcodeBenchmark
  • ❤ 3
Post #53 183
😒 ⏳Как ускорить сборку в 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-script-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

👏
Medium 🚀 How to Speed Up Xcode Build Time (and Stop Wasting Hours Waiting) If you’re an iOS developer, you’ve probably stared at that blue progress bar way longer than you’d like to admit. Let’s be real — Xcode…
  • ❤ 3
Post #52 185
👍 🧩 Про модуляризацию и границы между фичами
Чтение выходного дня натолкнуло на статью "Building Modular and Scalable iOS Apps".

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

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

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

#L #Arch #Modularity #apiimpl

👏
Medium Building Modular and Scalable iOS Apps: A Practical Guide to Feature-Oriented Architecture Modern iOS applications are becoming more complex, feature-rich, and interconnected than ever. As apps evolve, developers often struggle…
  • ❤ 3
  • 🔥 2
Post #42 185
😄 Директория Derived Data -
одна из самых заметных в работе iOS-разработчика. Xcode активно использует её для кэширования и оптимизации.

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

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

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

#M #iOS #TeamWork #Perfomance #DerivedData

👏
  • 👍 3
  • ❤ 1
  • 🔥 1
  • 🏆 1
Post #41 198
👍 🧠 “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

👏
martinfowler.com Understanding Spec-Driven-Development: Kiro, spec-kit, and Tessl Notes from my Thoughtworks colleagues on AI-assisted software delivery
  • 👍 2
Post #40 162
💻 "жиза", это когда половина рабочих встреч со всей недели, сьехали на рабочую субботу. 😒

#L

👏
Post #39 170
🎃 Полночь.
Пустой офис.
Монитор — единственный источник света.

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

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

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

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

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

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

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

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

#R

👏
  • ❤ 5
  • 👻 3
  • 🔥 1
  • 🥱 1
Post #38 184
☺️🧪 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

👏
Telegram YDC — Pizza Powered iOS 🤔 🧭 Метрики — компас зрелого проекта Наткнулся на статью от Bitrise, где описываются базовые метрики мобильного CI/CD: время сборки, стабильность пайплайнов, покрытие тестами и прочие технические сигналы. И это напомнило простую, но часто забываемую вещь:…
  • ❤ 3
  • 👍 1
Post #37 212
🤔🧵 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

👏
Apple Developer Optimize CPU performance with Instruments - WWDC25 - Videos - Apple Developer Learn how to optimize your app for Apple silicon with two new hardware-assisted tools in Instruments. We'll start by covering how to...
  • ❤ 5
Post #36 757
😳 🧠 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

👏
martinfowler.com Agentic AI and Security The serious security risks involved in using autonomous LLM applications and what we can do to mitigate them
  • ❤ 3
  • 🤡 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →