Aller au contenu

Conversion de code, paire par paire

PL/SQL vers Java

La même procédure, écrite à la main en PL/SQL et en Java. Elle est là pour que vous voyiez ce qui change et ce qui ne change pas avant que quiconque vous annonce un prix.

Avant · 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;

Ce que ça devient · Java

public static BigDecimal interest(BigDecimal balance, BigDecimal rate) {
    return balance.multiply(rate).setScale(2, RoundingMode.HALF_UP);
}
Une procédure : un solde multiplié par un taux, arrondi au centime. Écrite par un ingénieur dans les deux langages, pour que vous voyiez à quoi ressemble vraiment la cible.
Ci-dessous, une procédure dans les deux langages. Sur un vrai système, le même déplacement se fait sur l'arbre entier d'un coup : notre plateforme lit tous ses langages en parallèle, construit le graphe de dépendances, et un ingénieur coupe les frontières. Un million de lignes est la taille normale de ce travail, et il tient en trente jours.

Ce que cela donne sur votre système entier

Sur un vrai système, les questions qui coûtent cher sont ailleurs : quels fichiers plus rien n'appelle, quel job batch écrit l'enregistrement qu'un autre lit à 2 h du matin, et si la version réécrite produit encore les chiffres que vos auditeurs ont vus le mois dernier. L'audit répond à ces trois questions sur votre propre code, et il en sort un plan par phases avec un prix en face.