Les blocs arbitraires sont utiles pour introduire des variables intermédiaires qui ne sont utilisées que dans des cas particuliers de calcul.
Il s'agit d'un modèle courant dans le calcul scientifique, où les procédures numériques généralement:
- s'appuyer sur un grand nombre de paramètres ou de quantités intermédiaires;
- doivent faire face à de nombreux cas particuliers.
En raison du deuxième point, il est utile d'introduire des variables temporaires de portée limitée, ce qui est obtenu soit en utilisant un bloc arbitraire, soit en introduisant une fonction auxiliaire.
Bien que l'introduction d'une fonction auxiliaire puisse ressembler à une évidence
ou à une meilleure pratique à suivre aveuglément, il y a en fait peu d'avantages à le faire dans cette situation particulière.
Parce qu'il y a beaucoup de paramètres et de quantités intermédiaires, nous voulons introduire une structure pour les passer à la fonction auxiliaire.
Mais, comme nous voulons être conséquents avec nos pratiques, nous n'introduirons pas seulement une fonction auxiliaire mais plusieurs. Donc, si nous introduisons des structures ad-hoc véhiculant des paramètres pour chaque fonction, ce qui introduit beaucoup de surcharge de code pour déplacer les paramètres d'avant en arrière, ou nous en introduisons un qui les gouvernera toute la structure de la feuille de calcul, qui contient toutes nos variables mais ressemble à un grappin de bits sans consistance, où à tout moment seule la moitié des paramètres a une signification intéressante.
Par conséquent, ces structures auxiliaires sont généralement encombrantes et les utiliser signifie choisir entre une surcharge de code ou introduire une abstraction dont la portée est trop large et affaiblir le sens du programme, au lieu de le renforcer .
L'introduction de fonctions auxiliaires pourrait faciliter les tests unitaires du programme en introduisant une granularité de test plus fine, mais en combinant les tests unitaires pour ne pas que les procédures de bas niveau et les tests de régression sous forme de comparaisons (avec numdiff) des traces numériques des procédures font un travail tout aussi bon .