Обновить

Разработчик портировал 60 000 строк PHP на TypeScript за 14 часов — и предупредил о главной ошибке

Время на прочтение2 мин
Охват и читатели12K
Всего голосов 18: ↑12 и ↓6+10
Комментарии16

Комментарии 16

не из-за сложности самих языков, а потому что этап компиляции замедляет цикл итераций и запуск тестов на лету

Ну взял бы Go - он собирается супербыстро.

Разработчик портировал 60 000 строк PHP на TypeScript за 14 часов — и предупредил о главной ошибке

В соревновании «Желтее желтого» приз достается... даже не редактору Хабра...

А если серьёзно, то ошибка, по ему мысли — поверить, что «ИИ всё сделает сам», и планировать миграцию как нажатие волшебной кнопки.

Т.е. бюджетировать надо не «ИИ за день всё перепишет», а «сильный разработчик + быстрый AI‑напарник + постоянная проверка паритета + тесты». Иначе получится не миграция, а генерация похожего кода, который неизвестно насколько совпадает с исходной системой.

но Claude Code по собственной инициативе покрыл юнит-тестами каждый эндпоинт

и именно тесты превратили "вроде работает" в "могу доказать, что работает"

Не хотелось бы разочаровывать этого наивного добряка...

Рассматриваемый код представляет собой REST-сервис: полностью бэкэнд, доступный через аутентифицированные конечные точки

Это не легаси)

Хотелось бы глянуть на код.

Скорее всего lift and shift - перенес без изменений, максимум библиотеки изменились

Wordpress может портируют из PHP во что-то более модное и пафосное? Так, не для чего, просто чтобы не скучно было. :)

Ну и базку его из реляционной в nosql какую-нибудь. Во дела!

На раст, с графовой базой данных

А зачем он вообще это делал?:)

Лично у меня к PHP отношение так себе (как к самому модному языку который луше всех!!!) - но зачем было переписывать работающее?

Оно точно лучше стало? А то есть вот пример на node.js, который теперь приходится каждую ночь перезапускать, чтобы не висло...

PHP сам по себе относительно тупой простой и однопоточный язык, но вылизанный за десятилетия, обмазанный фреймворками и довольно-таки быстрый, надёжный и при работе не жрёт память как бегемот.
Надо было переписать не на TypeScript, а на Rust. /s

На Rust перевести сложнее. У меня некий опыт есть.

Отдельный вопрос - код получается рабочим, тесты проходит - но LLM-ка добавляет кучу ненужных оберток и не видит простой путь.

Моё субъективное мнение.
Тон статьи как-бы намекает на то, что Opus стал каким-то параноидально-осторожным при работе с этим XML-гуру. Как будто в Anthropic есть эвристический алгоритм - с обычными програмерами работай "как получится", а вот с этими (список IT-мега-перцев) включай "Opus на стероидах" ;-)

И что это дало ? Насколько стало быстрее ? Последние php и так довольно быстрые за счёт JIT.

Как что? Статью написали!

компилируемые языки вроде Java или C#

Они не полностью компилируемые.

У последних компиляторов C# есть AOT, который компилирует. Но не без нюансов и ограничений.

Теперь разработчик портирует тот же бэкенд на Python

Я так понимаю, вопрос "зачем?" под этой статьёй неуместен

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации