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

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

Rust в VB6

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

Было · Rust

fn interest(balance: Decimal, rate: Decimal) -> Decimal {
    (balance * rate).round_dp(2)
}

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

Public Function Interest(ByVal Balance As Currency, _
                         ByVal Rate As Double) As Currency
    Interest = Round(Balance * Rate, 2)
End Function
Одна процедура: остаток умножить на ставку, округлить до копейки. На обоих языках её писал инженер, чтобы вы прочитали, как целевой код выглядит на самом деле.
Ниже одна процедура на двух языках. На настоящей системе тот же переезд идёт сразу по всему дереву: платформа читает все языки в нём параллельно, строит граф зависимостей, а границы режет инженер. Миллион строк это обычный размер такой работы, и она укладывается в тридцать дней.

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

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