Legacy, якого більше не бояться

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

На кожному великому проєкті є місце, куди всі бояться заходити. Це той темний куточок з кодом, який виконує свою роботу, проте ніхто не знає деталей — як і чому. Його імʼя всі знають, але не кажуть вголос, бо це — legacy.

Причини різні. Буває, що авторка вже залишила компанію і знання не були передані чи задокументовані. Чи над цим місцем працювали кілька команд, кожна зі своїми цілями, і жодна так і не мала офіційної власності над функціоналом.

У сухому залишку, в якийсь момент треба це місце полагодити чи привести до ладу.

Добре, якщо поштовх йде зсередини — міграція чи хтось нарешті вирішив зрозуміти деталі. Зовсім халепа, коли ззовні — ця чорна скринька впала в продакшн.

Раніше треба було запастися терпінням, кавою і пірнути в дивовижний світ legacy та сивого волосся.

Проте зараз, нарешті, ми маємо помічника в цій нелегкій справі — ШІ-асистенти.

Сильна сторона LLM — це вміння аналізувати текст та перефразовувати його за запитом. Це саме те, що потрібно в нашому випадку з забутим кодом.

Цього тижня я мав задачу зʼясувати, як працює pipeline, що видає на виході майже 300 фіч.

Це був класичний набір для відлякування джавістів:

  • я приєднався до компанії, коли він вже працював
  • від авторів лишились лише ніки в VCS та сухі commit-повідомлення
  • використовує купу даних з ETL
  • його кілька разів мігрували за цей час
  • написаний на Python

Тому зараз він виглядає як дикий Захід.

Не гаючи часу, я клонував репозиторій та закинув промпт у Claude Code. І через дві хвилини вже мав звіт по роботі всієї логіки: звідки що беремо, як перетворюємо, де складаємо.

Далі кілька уточнень та перевірок і вуаля — опис поточного стану системи готовий.

Потім перекинув все це до Gemini та попросив згенерувати кілька діаграм в PlantUML. І ось маємо готову візуалізацію.

Це все нам з командою допомогло зрозуміти, як краще цей успадкований скарб переробити, аби нарешті взаємодія з ним не сприймалась як покарання.

Тепер ще лишається зробити саму роботу, а не тільки її описати та запланувати. Але й там мені допоможе Claude.

Я задоволений і вражений тим, наскільки у цьому моменті ШІ полегшив моє життя. Я б зробив той аналіз сам, але так ці кілька годин, можливо, підуть на щось більш цікаве.

  • Як вам ШІ допомагає боротись з legacy?
  • Чи маєте якісь поради, як ефективніше аналізувати кодову базу з LLM?

Буду радий почитати ваші відповіді в коментарях ⤵️

Більше про ШІ та технології у моєму Telegram-каналі.

Запрошую до читання моїх публікацій на Medium чи Substack.

Також на DOU є й інші мої дописи.

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Буває, що авторка вже залишила компанію і знання не були передані чи задокументовані.

Це відверта дискримінація жінок в IT.

Вимагаю виправити і вибачитись перед читачами (будь-якої статі).

І через дві хвилини вже мав звіт по роботі всієї логіки: звідки що беремо, як перетворюємо, де складаємо.

супер.
одна только проблема — все это с сильно ненулевой вероятностью грубейших ошибок.

Абсолютно.
Але для того ж я і є, аби перевірити його творчість :)

Як ти перевіриш? Сам полізеш розбиратися по легасі-коду?
Ще одна проблема — яку я помітив у AI при роботі з легасі-кодом: він занадто покладається на «логіку». Наприклад він вірить назвам функцій — але в легасі функції можуть вже давно робити не те, що колись. Також він покладається на «приклади»: якщо він «бачив» на 90% подібний код в інших репозиторіях на яких навчався — то робить припущення що і в цьому проєкти код працює так само. Але насправді може виявитись що хтось «зробив воркараунд» і насправді усе працює навпаки. Чи взагалі може половина коду — це застарілий «мертвий код» який вже майже ніколи не працює — а працює інша частина.
Насправді просто треба розуміти, що AI — це не Deus Ex — він може так само помилятися, як і людина. Може підказати правильно — а може ввести в оману. При цьому звичайно «дві голови краще, ніж одна» і мати AI-помічника (а може і декілька різних) не гірше ніж мати помічника-людину.

Підписатись на коментарі