Записки разработчицы
2.36K subscribers
460 photos
27 videos
4 files
1.18K links
Разговоры об IT, о разработке. О мобилках нативных и кроссплатформенных.
Личный аккаунт @azharkova
Download Telegram
Мы подготовили для вас статью по разработке агентов на Koog: https://habr.com/ru/companies/usetech/articles/1027130/ (чудеса отложенной публикации на Хабре и здесь). Стоит ли им заменять скиллы, рассматривать ли как альтернативу, решайте сами
8🤡1
Планирую мелькнуть в Минске 28 и 29.04, а также утром 30.04
🔥5🤮2
Дебютирую как ведущая квартирника) приходите, будет интересно. Поговорим про выгорание
2🤡1
Кто больше всех знает про стресс, конфликты, обратную связь культуру, подбор персонала, эффективность и выгорание? Конечно же, менеджеры. Доклады трека про управление командами:

Базовый минимум:

«Между событием и разговором»: где начинается управление. Вера Маневич, Ozon
Как и кого нанимать в инженерные команды в эпоху AI: гипотезы, ошибки и новые сигналы. Вячеслав Слуцкер, Независимый эксперт
Как отучить от тревоги себя и команду. Анна Бабич, психолог, писатель

Роскошный максимум:
Как мы перестали бояться факапов и начали учиться на них: история построения AI-first команды
Надежда Погина, Cloud.ru

Не жди кризиса. Регулярный чек-ап команды вместо реанимации
Александр Коныгин, Яндекс. Вертикали

Культурный код как драйвер команды
Артём Кудзев, 2ГИС

Тренер в IT: стадии развития команды глазами футбольного наставника
Кристина Олейник, TRAVELLINE

«Чё ты такой серьёзный?» Как юмор помогает продуктовым командам
Александр Водолазских, Т-Банк

Почему команды буксуют: системный взгляд на цели, роли и способ работы
Ольга Елисеева, Инфосисистемы Джет
Иван Чернов, Островок!

Тёмная сторона лидерства: как стресс превращает сильные стороны в риски
София Андрикова, Внешний консультант по развитию лидеров и команд

«Вывожу — не вывожу»: как помочь себе и команде с помощью PPM, ИИ и других способов
Анна Жаркова, ГК Юзтех
Екатерина Камчатова, БЕРИ МЕНЯЙ
Зинаида Родионова, АНО "Школа 21" в Новосибирске

Не та роль — и разговор провален: как выбрать стиль коммуникации в зависимости от типа встречи
Дарья Бородина, Потрудитесь отдохнуть!
Ольга Елисеева, Инфосисистемы Джет

Золотая середина лидерства: как в коммуникации сочетать требовательность и эмпатию
Михаил Ромашов, Soft Skills Lab, SberCIB

Вы не решаете технические конфликты — вы их воспроизводите
Алёна Ивахнова, Данил Руденко, Иван Чернышов — 2ГИС

Карьера без покоя: как айтишнику подготовиться к выходу из активной фазы (на пенсию)
Бари Бадамшин, Х5 Tech

Гадание на собеседовании: можно ли за час «технички» предсказать работу на годы вперед
Анастасия Терёхина, 2ГИС

Негласные правила современного найма
Дарья Гердт, CSSSR
Алёна Ивахнова, 2ГИС
Ника Пелевина, ARQA Technologies

Внедрять канбан или выращивать экосистему: история садовника из IT
Алексей Пименов, Неогенда
Сергей Слепакуров, Авито / Неогенда
Ксения Киреева, Софт Инжиниринг
Екатерина Чернова, hh.ru

Как получать обратную связь и быстрее расти с её помощью
Руслан Остропольский, Test IT , «Девелоника» (ГК Softline)

Дизайнеры не умеют дизайнить: почему так вышло и что с этим делать?
Константин Замуренко, VK, ВКонтакте

Тапки незрячего ClickHouse/BigData инженера
Евгений Некрасов, VK

А почему у тебя интеллект не искусственный?
А у тебя точно интеллект не искусственный? Давайте проверим
Максим Дорофеев, mnogosdelal.ru

Документация как приложение: как аналитик становится разработчиком, используя TypeSpec
Андрей Любарский, Роман Говоров — Т-Банк


Все доклады трека и их расписание: https://16.codefest.ru/program/management
3👎2👍1
Гарман не первый раз спорит с тезисом, что ИИ выдавит джуниоров: еще в августе он называл идею заменять начинающих разработчиков на ИИ "одной из самых тупых вещей, что я слышал"

Джуны могут быть не нужны только в одном случае — вы стартуете проект, вам нужны крутые синьоры, которые заложат правильную архитектуру, принципы, выстроят процессы. Но как только они ее построят, вам будет выгодно иметь 5-10% свежей крови

https://habr.com/ru/news/1033382/
7🤮1
Media is too big
VIEW IN TELEGRAM
🔊 Новый регулятор громкости в ОС Аврора 5.2

В версии 5.2 появился обновленный регулятор громкости. Как и раньше, он настраивается под ситуацию: регулирует громкость уведомлений, звонков или разговора в зависимости от того, что вы делаете.

А теперь еще удобнее! В любой момент можно вручную отрегулировать каждый из четырех звуковых потоков отдельно:
🔹 звонок
🔹 уведомления
🔹 медиа (музыка, видео)
🔹 будильник — да, его громкость тоже регулируется независимо

🎥 Как это работает, показываем в нашем видео

📲 Аврора в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎5
Неожиданная коллаборация, но актуальная тема
Forwarded from Мы обречены
Айти пузырь лопается уже четвертый или пятый раз за последние три года. 
Будни обычного разраба — это охреневать от сай-файности своей профессии и одновременно подбирать себе подходящий мост, чтобы под ним оказаться.

С одной стороны у нас тут ультра техно прогресс. С другой — интренет блять не работает. 

Но. Мы позвали разраба, который “вхож в некоторые круги” и “кое-чего знает, че там обсуждают”. Алексей Гладков говорил с — кхм-кхм — “важными людьми”, и представляет, че там наверху думают про индустрию.

Почему лопнул Айти пузырь. Что надуется на его месте. Где скоро будет куча вакансий. И главное — нахрена нам ломают интернет об колено.

Заходите смотрите
Youtube | VK-видео | Rutube | Аудиоверсия
___
Приходите на наш оффлайн-спешл
👎12💩10🤡31
Forwarded from Yandex for Mobile
🈲 Как LLM помогает миграции крупных проектов

🤝 Привет, это руководитель группы iOS-разработки Андрей Сикерин и разработчица Елизавета Мазулова. В Яндекс Браузере мы делаем приложение на iOS. Уже много лет в нашем сервисе шла миграция с Objective-C на Swift: это 10 тысяч файлов и сотни тысяч строк кода. А параллельно с миграцией мы продолжали развивать продукт.

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

В отличие от существующих инструментов-конвертеров, наша система с LLM понимает не только грамматику языка, но и архитектуру конкретного проекта. В её основе лежат четыре специализированных промпта:

🟠 Первый определяет оптимальный порядок миграции файлов, переписывает код и проверяет результат через компиляцию и тесты

🟠 Второй адаптирует код под лучшие практики Swift

🟠 Третий проводит автоматическую проверку по чек-листу: заголовки файлов, корректность замены типов, соответствие стандартам

🟠 Четвёртый очищает код от устаревших аннотаций, когда необходимость в них отпадает

За время работы над проектом мы полностью делегировали LLM рутинное переписывание кода. Разработчики только валидируют корректность миграции и занимаются сложным рефакторингом. В итоге затраты человеко-часов снизились примерно в 2,5 раза. Меньше чем за год мы влили 106 пул-реквестов в master, обработали 97 500 строк легаси-кода и 2167 файлов.

А ещё мы уже проверили, что подход работает не только у нас. Для этого взяли открытый репозиторий приложения Wikipedia для iOS и без существенных изменений промптов мигрировали один из его пакетов.

🎲 Читайте статью на Хабре, в которой мы подробно рассказали об архитектуре решения, контроле качества и устройстве промптов.

🎲 Найти наш опенсорс-инструмент можно на гитхабе или в SourceCraft.

Подписывайтесь:
💬 @Yandex4Mobile
📹 @YandexforMobile
Please open Telegram to view this post
VIEW IN TELEGRAM
👎3👍1
Forwarded from iOS Broadcast (Андрей Зонов)
🐥 Swift 6 краши при многопоточности
Если вам кажется что Swift 6 strict concurrency - это просто больше compile-time проверок - это не так. Часть проблем ловится уже в runtime, причём иногда прямо в production. Даже если проект собирается без warnings, Swift может вставить dynamic isolation checks на границах акторов и GCD. И если код ожидал один execution context, а приехал в другой — приложение упадет 😥. Чаще всего в crash reports это выглядит так:
_dispatch_assert_queue_fail
_swift_task_checkIsolatedSwift

Суть проблемы простая: closure или метод унаследовал actor isolation там, где был объявлен, а вызвали его потом из другого потока. Например, closure внутри @MainActor context может неявно стать main-actor-isolated. А потом вы передаёте её в context.perform у Core Data, который выполняет блок на своей private queue.
Где это особенно легко поймать:
🟢Core Data context.perform из @MainActor-кода
🟢Combine pipeline, где operator выполняется до receive(on:)
🟢NotificationCenter publisher, если notification прилетает с background thread
🟢delegate callbacks от SDK, которые не обещают main thread
🟢MainActor.assumeIsolated, если вы на самом деле не на MainActor
🟢actor methods, где после await состояние уже могло измениться из-за reentrancy

Практические правила:
🟢если Combine-operator должен работать на main — ставьте .receive(on: DispatchQueue.main) до него, а не после
🟢если closure не должен наследовать actor isolation — явно помечайте его @Sendable
🟢если delegate может прийти не с main thread — делайте метод nonisolated, а UI-работу отправляйте в Task { @MainActor in ... }
🟢не используйте MainActor.assumeIsolated как красивую замену await MainActor.run
🟢не рассчитывайте, что @MainActor на всём классе автоматически безопасен для всех callback’ов

Swift 6 начал громко показывать то, что раньше было скрытой проблемой:
🟡closure наследует isolation от места объявления, а не от места выполнения
🟡receive(on:) не спасает код, который уже выполнился до него
🟡delegate от системного SDK не обязан приходить на main thread
🟡билд без ворнингов не гарантирует отсутствие рантайм крашей из-за многопоточности
🟡после await внутри actor нельзя слепо доверять старому состоянию

Swift 6 concurrency — это не только про то, чтобы пофиксить warnings, это про пересмотр границ - где выполняется код, кто владеет состоянием и какой thread/actor реально вызывает callback.
Please open Telegram to view this post
VIEW IN TELEGRAM
2🤡1
Становимся «сертифицированными вайб-кодерами»: у Microsoft появился официальный тест пл работе с ИИ-агентами.

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

К слову, стоит это удовольствие чуть меньше месячной подписки Pro на ChatGPT — $160.

Пробуем свои силы тут.
🤡4
Что ж, хорошо, что второе издание еще не ушло в печать
😁7🤡2
🏝 JetBrains обновили дефолтную структуру KMP проектов. Теперь общий код живёт в shared модуле, а под каждую целевую платформу свой отдельный application модуль.

Раньше всё было в одном composeApp, который одновременно был и KMP библиотекой, и приложением. Это создавало путаницу в build конфигах и платформенных настройках. iOS при этом уже жил в отдельной папке, и асимметрия торчала наружу.

Главным триггером изменений стал Android Gradle Plugin 9, который больше не позволяет применять Android application plugin к multiplatform модулю. Entry point Android приложения теперь обязательно вынесен в отдельный модуль.

Если в проекте есть нативный UI (например, SwiftUI для iOS), shared разбивается на два модуля: sharedLogic без Compose зависимостей и sharedUI только для платформ с Compose Multiplatform. Для проектов с серверной частью добавляется server модуль и core с общими моделями и валидацией для шаринга между клиентом и сервером.

Я ещё до этого держал каждый application в отдельном модуле, так что для меня новая дефолтная структура лишь оформляет то что уже стало здравым смыслом. Раньше с одним shared было неприятно из-за того что Kotlin stdlib и зависимости тащились в каждый iOS framework. Несколько атомарных shared модулей решают эту проблему и позволяют точечнее управлять тем что попадает на каждую платформу. Очень рад что JetBrains двигаются в сторону более атомарных модулей, но пока есть вопросы не будет ли дублирования базовых Kotlin библиотека в каждый Xcode фреймворк.

Новая структура уже доступна в KMP wizard на kmp.new и в IDE плагине.

🔗 Анонс
📹 Видео разбор от JetBrains

#Kotlin #KMP #Gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
9👏1
Присоединяемся к просмотру Google I/O: https://io.google/2026/

Прошлый год получился очень насыщенный по новинкам AI, так что Google надо постараться, чтобы нас удивить (хотя им достаточно разрешить свободное использование своих тулзов из РФ). Лично я жду, что же они покажут не иишного: новинки Android, KMP, Kotlin и Flutter https://www.youtube.com/watch?v=wYSncx9zLIU
🤡43
С учетом того, что очень давно ничего нового и не выходило под View, особо ничего и не изменилось. View под капотом компоуза останутся
🤔2🤮2
Forwarded from Android Broadcast
‼️ Android View всё! Да здравствует Compose!

Google официально объявила о переходе к стратегии «Compose-first» и прекращении развития Android View, переводя его в режим поддержки.

Что это значит:
👉 Классы android.widget.* в Android SDK будут находиться в режиме поддержки.
👉 Библиотеки Android Jetpack (включая RecyclerView) также переходят в режим поддержки.
👉 Все инструменты в Android Studio будут создаваться только для Compose.
👉 Документация будет писаться только для Compose, однако некоторые разделы про View останутся.

🔗 Источник - оф сайт Android Developers

#Android #AndroidDev #Compose
🫡201
Многие из вас (надеюсь) задаются вопросом: "Аня, а вот Google I/O прошел, а где обзор на Хабре?" Все будет) Но в выходные 😎
21🤮3👨‍💻3🤡2🔥1
Интересно, насколько это связано или различается от Koog
💯2
🤖 Google анонсировала ADK for Android 0.1.0 вместе с ADK for Kotlin

ADK (Agent Development Kit) - это open-source фреймворк для AI-агентов, и теперь у него есть Android-артефакт с поддержкой on-device моделей.

Ключевая архитектурная идея: облачный оркестратор ведёт диалог с пользователем и координирует работу. Когда нужно обработать приватные данные - документы, брони, личные файлы - он делегирует subagent'у, который работает на устройстве через ML Kit GenAI и AICore. Данные за пределы устройства не уходят.

В стек входят LLM-агенты, sequential agents, MCP tools, session state и long-term memory через Memory service, OpenTelemetry для наблюдаемости.

Можно использовать три варианта моделей:
👉 ML Kit GenAI для on-device Gemini Nano
👉 Firebase AI Logic для облачного Gemini
👉 Google GenAI для быстрого прототипирования.

‼️ ВАЖНО: версия 0.1.0, статус "В активной разработке". Это очень ранний экспериментальный релиз, не для продакшна.

Архитектурный паттерн с разделением на облачный оркестратор и on-device агент выглядит разумно - именно так я бы и хотел видеть подобный инструмент. Но внедрять в прод рано.

🔗 Источник Android Dev Blog

#Android #AI #Gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
Любит ИИ меня переделывать, ну да ладно. Мы же провели крутой эфир на тему натива и кросс-платформы с Evrone)
🔥1🤮1