I blocchi arbitrari sono utili per introdurre variabili intermedie che vengono utilizzate solo in casi speciali di calcolo.
Questo è un modello comune nel calcolo scientifico, in cui le procedure numeriche in genere:
- fare affidamento su molti parametri o quantità intermedie;
- avere a che fare con molti casi speciali.
A causa del secondo punto, è utile introdurre variabili temporanee di portata limitata, ottenute utilizzando un blocco arbitrario o introducendo una funzione ausiliaria.
Mentre l'introduzione di una funzione ausiliaria può sembrare un gioco da ragazzi
o una buona pratica da seguire alla cieca, in realtà ci sono pochi benefici da fare in questa particolare situazione.
Poiché ci sono molti parametri e quantità intermedie, vogliamo introdurre una struttura per passarli alla funzione ausiliaria.
Ma, poiché vogliamo essere conseguenti alle nostre pratiche, non introdurremo solo una funzione ausiliaria ma diverse. Quindi, se introduciamo strutture ad hoc che trasmettono parametri per ogni funzione, che introducono un sacco di sovraccarico di codice per spostare i parametri avanti e indietro, o introduciamo uno che governerà tutte le strutture del foglio di lavoro, che contiene tutte le nostre variabili ma sembra un grabpack di bit senza coerenza, dove in qualsiasi momento solo la metà dei parametri ha un significato interessante.
Pertanto, queste strutture ausiliarie sono in genere ingombranti e usarle significa scegliere tra code-bloat o introdurre un'astrazione il cui ambito è troppo ampio e indebolire il significato del programma, invece di scoraggiarlo .
L'introduzione di funzioni ausiliarie potrebbe facilitare i test unitari del programma introducendo una granularità di test più fine ma combinando i test unitari non per le procedure di basso livello e i test di regressione sotto forma di confronti (con numdiff) di tracce numeriche delle procedure fa un buon lavoro .