К содержимому

Перевод кода, пара за парой

Python в TypeScript

Одна и та же процедура, написанная руками на Python и на TypeScript. Она здесь, чтобы вы увидели, что меняется, а что остаётся, до того как кто-то назовёт вам цену.

Было · Python

from decimal import Decimal, ROUND_HALF_UP

def interest(balance: Decimal, rate: Decimal) -> Decimal:
    return (balance * rate).quantize(Decimal("0.01"), ROUND_HALF_UP)

Во что это превращается · TypeScript

export function interest(balance: bigint, rateBasisPoints: bigint): bigint {
  return (balance * rateBasisPoints + 5000n) / 10000n
}
Одна процедура: остаток умножить на ставку, округлить до копейки. На обоих языках её писал инженер, чтобы вы прочитали, как целевой код выглядит на самом деле.
Ниже одна процедура на двух языках. На настоящей системе тот же переезд идёт сразу по всему дереву: платформа читает все языки в нём параллельно, строит граф зависимостей, а границы режет инженер. Миллион строк это обычный размер такой работы, и она укладывается в тридцать дней.

Как это выглядит на всей вашей системе

На вашей настоящей кодовой базе тот же переезд отвечает на вопросы, которых пара файлов не покрывает: какие файлы уже никто не вызывает, какое батч-задание пишет в 02:00 запись, которую потом читает другое, и выдаёт ли переписанная версия те же числа, что ваши аудиторы видели в прошлом месяце. Аудит возвращает все три ответа за три-пять дней.