Фьючерсы
Доступ к сотням фьючерсов
TradFi
Золото
Одна платформа мировых активов
Опционы
Hot
Торги опционами Vanilla в европейском стиле
Единый счет
Увеличьте эффективность вашего капитала
Демо-торговля
Введение в торговлю фьючерсами
Подготовьтесь к торговле фьючерсами
Фьючерсные события
Получайте награды в событиях
Демо-торговля
Используйте виртуальные средства для торговли без риска
Запуск
CandyDrop
Собирайте конфеты, чтобы заработать аирдропы
Launchpool
Быстрый стейкинг, заработайте потенциальные новые токены
HODLer Airdrop
Удерживайте GT и получайте огромные аирдропы бесплатно
Pre-IPOs
Откройте полный доступ к глобальным IPO акций
Alpha Points
Торгуйте и получайте аирдропы
Фьючерсные баллы
Зарабатывайте баллы и получайте награды аирдропа
Инвестиции
Simple Earn
Зарабатывайте проценты с помощью неиспользуемых токенов
Автоинвест.
Автоинвестиции на регулярной основе.
Бивалютные инвестиции
Доход от волатильности рынка
Мягкий стейкинг
Получайте вознаграждения с помощью гибкого стейкинга
Криптозаймы
0 Fees
Заложите одну криптовалюту, чтобы занять другую
Центр кредитования
Единый центр кредитования
Рекламные акции
AI
Gate AI
Ваш универсальный AI-ассистент для любых задач
Gate AI Bot
Используйте Gate AI прямо в вашем социальном приложении
GateClaw
Gate Синий Лобстер — готов к использованию
Gate for AI Agent
AI-инфраструктура: Gate MCP, Skills и CLI
Gate Skills Hub
Более 10 тыс навыков
От офиса до трейдинга: единая база навыков для эффективного использования ИИ
GateRouter
Умный выбор из более чем 30 моделей ИИ, без дополнительных затрат (0%)
В эпоху AI-кодирования хорошие привычки программирования по-прежнему важны
Недавно я делал бенчмарк для агента и обнаружил, что нельзя просто оценивать сложность задачи программирования для ИИ с точки зрения разработчика.
Например, задача рефакторинга: разбить большой файл в несколько тысяч строк на более чем десять небольших модулей по функциям.
Эта задача для разработчика на самом деле не считается сложной, основная работа — перемещение кода, организация импортов, проверка сборки, — с этим справится даже новичок.
Поэтому я решил использовать простую задачу для бенчмарка, и результат оказался неожиданным.
Claude Code посчитал задачу довольно большой, попытался拆一部分, создал PR и написал Future work, планируя делать поэтапно.
Мой собственный агент — «жесткий» подход, я продвинулся в сторону полного拆分, но цена была очевидна: расход токенов в десятки раз больше, чем у Claude, и большая часть времени уходила на повторное чтение файлов, исправление ошибок компиляции, снова чтение и исправление ошибок.
Это заставило меня понять, что задача, которая кажется человеку простой, для агента не обязательно таковой.
Для человека такие рефакторинги часто сводятся к «просто перенести этот кусок». Но для агента сначала нужно разбить большой файл на части, запомнить, какие функции и тесты связаны, затем сгенерировать множество изменений между файлами, и в конце — исправлять ошибки компиляции по чуть-чуть.
Это выглядит как механическая работа, но на деле превращается в задачу с высокой затратой токенов и сложным управлением состоянием.
Недавно я видел мнение, что в эпоху AI-кодирования принципы разделения модулей уже не так важны, ведь люди всё равно не читают код. Сейчас я с этим не согласен. Четкие границы модулей, подходящий размер файлов, простые зависимости — это не только удобно для человека, но и помогает снизить сложность задачи для агента.
С другой стороны, инструменты для чтения и изменения файлов у агента сейчас не очень подходят для таких рефакторингов.
Когда агент меняет файлы, он в основном делает текстовые замены. Например, Claude Code часто использует схему old_string / new_string: сначала подает старый текст, потом заменяет его на новый.
Codex обычно применяет apply_patch: создает патч, похожий на git diff, который заменяет старое содержимое новым.
Оба метода подходят для небольших изменений, но если нужно удалить большой кусок кода или перенести целый набор функций в другой файл, модель обычно сначала читает исходный контекст, а потом генерирует большой блок замены или diff.
Поэтому я дал агенту подсказку: пусть он сначала с помощью скриптов, sed, perl или подобных инструментов разбивает большой файл на части, удаляет старое содержимое и записывает в новый файл, а потом постепенно исправляет.
Это значительно повысило его эффективность.
По умолчанию агент так не делает, потому что в системных подсказках явно требуют, чтобы он использовал встроенные инструменты для изменения файлов, а не командную строку.
Дальше я подумал, что для более продвинутого редактирования агенту нужны более сложные инструменты.
Не просто интерфейс «заменить текст», а возможность через парсер, LSP или компилятор строить структуру кода, чтобы он мог делать рефакторинг как в IDE: перемещать функции, удалять блоки impl, организовывать импорты.
Интересно, есть ли кто-то, кто уже пробовал что-то в этом направлении.
В целом, даже в эпоху AI-кодирования хорошие привычки программирования остаются ценными.
Чем раньше через инженеринг тестовых сред (harness engineering) превратить хорошие привычки в стандартную работу агента, тем меньше затрат на последующий рефакторинг.