PL/SQL в Rust
Одна и та же процедура, написанная руками на PL/SQL и на Rust. Она здесь, чтобы вы увидели, что меняется, а что остаётся, до того как кто-то назовёт вам цену.
Было · PL/SQL
CREATE OR REPLACE FUNCTION interest(
p_balance NUMBER, p_rate NUMBER
) RETURN NUMBER IS
BEGIN
RETURN ROUND(p_balance * p_rate, 2);
END;Во что это превращается · Rust
fn interest(balance: Decimal, rate: Decimal) -> Decimal {
(balance * rate).round_dp(2)
}Ниже одна процедура на двух языках. На настоящей системе тот же переезд идёт сразу по всему дереву: платформа читает все языки в нём параллельно, строит граф зависимостей, а границы режет инженер. Миллион строк это обычный размер такой работы, и она укладывается в тридцать дней.
Как это выглядит на всей вашей системе
На вашей настоящей кодовой базе тот же переезд отвечает на вопросы, которых пара файлов не покрывает: какие файлы уже никто не вызывает, какое батч-задание пишет в 02:00 запись, которую потом читает другое, и выдаёт ли переписанная версия те же числа, что ваши аудиторы видели в прошлом месяце. Аудит возвращает все три ответа за три-пять дней.