Робот-пылесос прибирается в legacy 🤪
Чем больше я работаю с AI на рабочих проектах и пет, и чем больше общаюсь с другими ребятами в коммьюнити, тем сильнее вижу разницу между greenfield и legacy.
В новом проекте AI летит. Все чисто, понятно, все единообразно, скрытых знаний почти нет.
А в legacy все сильно хуже. Даже если это не какое-то ужасное древнее legacy. Достаточно скрытых знаний о том, почему здесь написано именно так и что нельзя случайно сломать рядом.
И к чему это приводит?
Приходится писать много документации и рулов, guardrails, отдельно объяснять агенту:
• какие старые подходы нельзя копировать
• где код выглядит нормально, но на самом деле это legacy
• какие неочевидные связи нельзя сломать
• как у нас принято писать новый код
Это все помимо того, что все надо покрывать тестами.
И все равно AI периодически смотрит на старый код и решает "О, значит здесь так принято, напишу ка я так же"😅
В какой-то момент начинаешь думать: а может, проще все переписать с нуля? Ну реально!
Конечно, я не предлагаю срочно переписывать все приложения. Это долго, дорого и риски. Хотя некоторые я бы все-таки переписал 😄
Но где-то точно существует граница, после которой поддерживать legacy с AI становится сложнее, чем запустить агента на пару недель и попросить его собрать все заново. Где эта граница?
У нас в Дринките 🐳 пока появился другой подход. Я назвал его "робот-пылесос".
Мой коллега Дима Максимов сделал автономного агента. Он сам берет небольшие задачи и создает PR. Нам остается все проверить и смержить.
И одна из его задач: постепенно прибираться за legacy! И я пока что очень в восторге!
Как настоящий робот-пылесос. Он ездит медленно, убирает по чуть-чуть и не может очистить всю квартиру за пять минут. Но если запускать его регулярно, со временем он проедет всю комнату и доберется до каждого угла.
Так же и здесь. Агент постепенно берет маленькие старые куски кода и приводит их к текущим подходам команды.
Главное ограничение сейчас не скорость агента, а наше code review. Мы могли бы запускать его намного чаще, но тогда просто PR-ы не протолкнуть.
Поэтому пока искусственно ограничиваем робота. Все изменения в основном приложении обязательно ревьюим человеками.
Но сама идея мне нравится!
Не пытаться однажды выделить полгода на борьбу с legacy. А запустить робота-пылесоса, который будет понемногу прибираться в фоне, пока команда продолжает работать над продуктом.
Посмотрим, насколько чисто у нас станет через несколько месяцев 😄
#AI #SoftwareEngineering #LegacyCode #AIAgents #CodeReview
Чем больше я работаю с AI на рабочих проектах и пет, и чем больше общаюсь с другими ребятами в коммьюнити, тем сильнее вижу разницу между greenfield и legacy.
В новом проекте AI летит. Все чисто, понятно, все единообразно, скрытых знаний почти нет.
А в legacy все сильно хуже. Даже если это не какое-то ужасное древнее legacy. Достаточно скрытых знаний о том, почему здесь написано именно так и что нельзя случайно сломать рядом.
И к чему это приводит?
Приходится писать много документации и рулов, guardrails, отдельно объяснять агенту:
• какие старые подходы нельзя копировать
• где код выглядит нормально, но на самом деле это legacy
• какие неочевидные связи нельзя сломать
• как у нас принято писать новый код
Это все помимо того, что все надо покрывать тестами.
И все равно AI периодически смотрит на старый код и решает "О, значит здесь так принято, напишу ка я так же"😅
В какой-то момент начинаешь думать: а может, проще все переписать с нуля? Ну реально!
Конечно, я не предлагаю срочно переписывать все приложения. Это долго, дорого и риски. Хотя некоторые я бы все-таки переписал 😄
Но где-то точно существует граница, после которой поддерживать legacy с AI становится сложнее, чем запустить агента на пару недель и попросить его собрать все заново. Где эта граница?
У нас в Дринките 🐳 пока появился другой подход. Я назвал его "робот-пылесос".
Мой коллега Дима Максимов сделал автономного агента. Он сам берет небольшие задачи и создает PR. Нам остается все проверить и смержить.
И одна из его задач: постепенно прибираться за legacy! И я пока что очень в восторге!
Как настоящий робот-пылесос. Он ездит медленно, убирает по чуть-чуть и не может очистить всю квартиру за пять минут. Но если запускать его регулярно, со временем он проедет всю комнату и доберется до каждого угла.
Так же и здесь. Агент постепенно берет маленькие старые куски кода и приводит их к текущим подходам команды.
Главное ограничение сейчас не скорость агента, а наше code review. Мы могли бы запускать его намного чаще, но тогда просто PR-ы не протолкнуть.
Поэтому пока искусственно ограничиваем робота. Все изменения в основном приложении обязательно ревьюим человеками.
Но сама идея мне нравится!
Не пытаться однажды выделить полгода на борьбу с legacy. А запустить робота-пылесоса, который будет понемногу прибираться в фоне, пока команда продолжает работать над продуктом.
Посмотрим, насколько чисто у нас станет через несколько месяцев 😄
#AI #SoftwareEngineering #LegacyCode #AIAgents #CodeReview