Цифрова незалежність з оновленням Immich 3.0
Реалії автоматизованого портування legacy-систем

Міграція масштабного legacy-проєкту з PHP на Node.js/TypeScript часто сприймається як рутинне та надзвичайно ризиковане завдання, що потребує місяців ретельного аналізу. Однак використання сучасних ШІ-агентів, зокрема Claude Code на базі моделі Opus 4.8, дозволяє скоротити цей процес до лічених годин. У цьому випадку перед розробником стояло жорстке інженерне завдання: відтворити REST-сервіс із автентифікованими ендпоїнтами, зберігши ідентичну поведінку та контракти даних. Будь-яке відхилення від оригіналу вважалося неприпустимим, що перетворило задачу з творчого переписування на суворий технічний портінг.
Ефективність перевірки була досягнута завдяки грамотному підходу до верифікації. Фронтенд системи був спроєктований таким чином, щоб дозволити миттєве перемикання між старим PHP-бекендом і новим TypeScript-сервісом через зміну фрагмента URL. Ця стратегія створила ідеальний еталон: якщо інтерфейс працював однаково за обох варіантів бекенду, паритет вважався досягнутим. У разі будь-якої розбіжності виявлявся баг, який одразу відправлявся на доопрацювання.
Проте за гучним показником у 14 годин криється важливий методологічний урок. Існує небезпечна хибна думка про те, що ШІ може виконати таку міграцію повністю автономно. На практиці процес перетворився на інтенсивну сесію парного програмування. Агент регулярно призупиняв роботу, щоб уточнити наміри розробника або підтвердити специфічну поведінку системи через фронтенд. Саме ці паузи є ключовим запобіжником: агент, який не ставить запитань, становить набагато більшу небезпеку, ніж той, хто потребує уточнень. Таким чином, часові витрати — це не час очікування прогрес-бару, а щільний цикл взаємодії «пропозиція агента — перевірка людиною — корекція курсу».
Окремої уваги заслуговує питання якості коду. Попри відсутність прямих вимог щодо написання тестів, Claude Code самостійно покрив кожен ендпоінт юніт-тестами. У контексті міграції це перетворює результат із «ймовірно працюючого прототипу» на повноцінну продуктивну заміну оригіналу. Тести стали тим самим доказом коректності, який переводить проєкт із розряду гіпотез у категорію готового продукту.
Аналізуючи цей досвід, можна зробити висновок про вплив природи мов програмування на швидкість ШІ-розробки. Перенос аналогічного бекенду на Python займає приблизно стільки ж часу, скільки і на TypeScript. Однак при роботі з компільованими мовами, такими як Java або C#, цикл ітерацій неминуче сповільнюється. Причиною стає не складність синтаксису, а необхідність етапу компіляції, який розриває миттєвий зв'язок між правкою коду та перевіркою результату «на льоту».
Головний висновок для команд, що планують подібну трансформацію: не можна закладати бюджет, виходячи з концепції «магічної кнопки». Правильніше розглядати ШІ як надзвичайно швидкого напарника, який потребує постійної уваги та експертного керівництва. Швидкість автоматизації вражає, але вона працює лише в зв'язці з людиною, здатною вчасно скоригувати вектор руху системи.

